![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 19.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Proszę o pomoc w wyjaśnieniu pewnego dziwnego zachowania. Poniższy zapis:
daje błąd Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in *************** on line i tu jest numer lini gdzie znajduje się ('$_SESSION['a']')"; Natomiast taki zapis:
jest interpretowane prawidłowo. Czemu? Ten post edytował Gonzo44 6.09.2007, 18:09:25 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Apostrofy tak w PHP, jak i w SQL nie mogą się zagnieżdżać, czyli nie możesz zrobić czegoś takiego: ' 'cos tam' ', gdzie apostrofy wewnętrzne są zagnieżdżone w zewnętrznych - to nie jest prawidłowe... Nawet intuicyjnie. Jeśli musisz coś takiego zrobić, to prawidłowymi formami są " 'cos tam' " lub ' "cos tam" ', bo wtedy znaki są odrębne, nie wiem, czy dobrze tłumaczę.
Oczywiście, te 2 prawidłowe sposoby, które podałem nie odnoszą sie do Twojego kodu, bo tam masz zapytanie SQL w podwójnych cudzysłowach. Musisz zastosować na przykład funkcję extract" title="Zobacz w manualu PHP" target="_manual na tablicy $_SESSION, bądź ręcznie przypisać wartość elementu tablicy sesji do zwykłej, skalarnej zmiennej, co właśnie zrobiłeś w drugim kodzie. A poza tym, w zapytaniach SQL nie należy stosować tablic PHP - stąd kod drugi jest jedynym poprawnym. Ten post edytował Hazel 6.09.2007, 18:34:01 -------------------- ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 17 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
zapewne chodzi o to,że używasz samych znakow " ' "
mianowicie : ('$_SESSION['a']')"; pierwszy ' informuje, że zaczął się ciąg znaków,a drugi ' informuje, że ciąg znaków się skończył, czego efektem jest to, że "a" jest poza ciągiem znaków. (po "a" rozpoczyna sie nowy ciąg w ktorym znajdzuje sie tylko " ] ". Ten post edytował maziak 6.09.2007, 18:35:49 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 27.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Rzadko, ale czasem nie działa poprawnie, zwłaszcza przy długich zapytaniach.
Lepiej jednak przypisywac długie nazwy zmiennych do krótszych. Zresztą, każdy robi jak uważa. Pozdrawiam. -------------------- ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 19.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za wytłumaczenie. Teraz widze, że to oczywiste. Powoli zagnieżdża się parser w mojej głowie ;-)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:09 |