Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Mysql 5.x i apostrofy
Forum PHP.pl > Forum > Przedszkole
konrados
Witam,

Ostatnio przeszedłem na mysql 5.x i oprócz wielu problemów napotkałem też na jakieś zmiany w użytkowaniu apostrofów (') w kwerendach (?)

Miałem zwyczaj zawsze nazwy pól umieszczać w apostrofach, to źle ? W 4.x nie było problemów a teraz w 5.x taka kwerenda np.:

$result=mysql_query("SELECT * FROM table ORDER BY 'datetime' DESC LIMIT 0,10") or die(mysql_error());

Nie działa. W dodatku mysql nie wyrzucił żadnego błędu, po prostu nie posortował wg. "datetime"

Więc należy czy nie należy zamykać nazwy pól w apostrofach? Bo jak rozumiem, nazwy tabel zawsze należy, tak?
erix
Tzn. dla nazw pól jest "znak akcentu", klawisz, który masz przy tyldzie.

Nazwy wrzucasz w uszy tylko wówczas, gdy zawierają znaki specjalne bądź są zarezerwowane (np. robisz kolumnę order).
konrados
W "uszy" czyli znak akcentu czy apostrof?
Skie
Używaj "ciapek" zamiast apostrofów: (o takich: `` zamiast ' ')

  1. $result=mysql_query("SELECT * FROM table ORDER BY `datetime` DESC LIMIT 0,10") or die(mysql_error());


Teoretycznie powinno ich się zawsze chyba używać, ale niezbędne to jest wtedy gdy nazwa jakiegoś pola może oznaczać dla mysql jakąś komendę. Mi się raz np. pole z opisem zdarzyło nazwać desc i dziwiłem się czemu mi zapytanie nie działa (a było ono dość długie, na kilka linijek). Dopiero dodanie ciapek pomogło ^^

Może jest jescze jakaś inna kwestia odnośnie tego ale to już znawcy muszą się wypowiedzieć :-)
konrados
OK dzięki Wam, a czy można jakoś mysql'owi powiedzieć by wyrzucał błąd gdy użyłem apostrofów nie tam gdzie trzeba? Bo teraz przeglądanie całego kodu to mi 2 dni zajmie sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.