Ik heb op mijn site het volgende script geplaatst,
http://www.phphulp.nl/php/tutorials/2/159/
Om het werkend te krijgen moest ik de query's veranderen in bijv.
van -
Code (php)
1
"SELECT * FROM pm WHERE to = '$session_user' && id = '$id"
naar -
Code (php)
1
"SELECT * FROM `pm` WHERE `to` = '" . $session_user . "' && `id` = '" . $id . "'"
en
van -
Code (php)
1
"UPDATE pm SET read = '1' WHERE id = '$id'"
naar -
Code (php)
1
"UPDATE pm SET `read` = '1' WHERE id = '" . $id . "'"
Ik lees nu hier
http://www.phphulp.nl/php/tutorials/3/474/1089/
dat ik `Backticks` af moet leren.
Maar als ik ze verwijder dan werkt het script niet.
Hoe kan dat? Waar ligt dat aan?
Waarschijnlijk aan de query binnen enkel qoutes plaatsen.
Maar als ik doe,
Code (php)
1
'SELECT * FROM pm WHERE to = '$session_user' && id = '$id''
krijg ik Parse error: syntax error, unexpected T_VARIABLE
Hoe schrijf het beste de Query?
Gewoon diegene die werkt,
Code (php)
1
"SELECT * FROM `pm` WHERE `to` = '" . $session_user . "' && `id` = '" . $id . "'"
Gewijzigd op 01/01/1970 01:00:00 door
Patrick Wat is de foutmelding als je geen backticks gebruikt?
Verder moet je de backticks zeker uit je query weglaten, ritueel verbranden die dingen. Is troep van MySQL om fouten te verbergen en wil je niets mee te maken hebben.
to is een reserved word en mag daarom niet gebruikt worden
als naam voor tabel, veld, enzGewijzigd op 01/01/1970 01:00:00 door
Misschien is read een reserved word.
Dan krijg ik de mysql_error melding. Dat hij niet met de db kan werken.
met
Code (php)
1
"SELECT * FROM pm WHERE to = '" . $session_user . "' && id = '" . $id . "'"
zo werkt het wel
Code (php)
1
2
3
"SELECT * FROM `pm` WHERE `to` = '" . $session_user . "' && `id` = '" . $id . "'"
en zo ook,
"SELECT * FROM pm WHERE `to` = '" . $session_user . "' && `id` = '" . $id . "'"
Zie de opmerkingen hierboven: het is niet toegestaan gereserveerde woorden te gebruiken. De backticks zorgen ervoor dat dit wel mogelijk is, maar is dus alleen maar een lapmiddel dat enkel bij MySQL werkt.
Gewoon geen gereserveerde woorden gebruiken en backticks uit je query verwijderen...
Zo werkt het,
Code (php)
1
"SELECT * FROM pm WHERE naar = '" . $session_user . "' && id = '" . $id . "'"
Bedankt voor de reakties.
Nog een kleine opmerking: && is volgens mij ook geen standaard SQL en wordt alleen door MySQL geaccepteerd. Gebruik daar het liefst gewoon AND.