Query en Backticks

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick

Patrick

18/11/2007 20:28:00
Quote Anchor link
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)
PHP script in nieuw venster Selecteer het PHP script
1
"SELECT * FROM pm WHERE to = '$session_user' && id = '$id"

naar -
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"SELECT * FROM `pm` WHERE `to` = '" . $session_user . "' && `id` = '" . $id . "'"

en
van -
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"UPDATE pm SET read = '1' WHERE id = '$id'"

naar -
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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)
PHP script in nieuw venster Selecteer het PHP script
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)
PHP script in nieuw venster Selecteer het PHP script
1
"SELECT * FROM `pm` WHERE `to` = '" . $session_user . "' && `id` = '" . $id . "'"
Gewijzigd op 01/01/1970 01:00:00 door Patrick
 
PHP hulp

PHP hulp

12/01/2025 03:41:19
 
Joren de Wit

Joren de Wit

18/11/2007 20:38:00
Quote Anchor link
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.
 

18/11/2007 20:41:00
Quote Anchor link
to is een reserved word en mag daarom niet gebruikt worden als naam voor tabel, veld, enz
Gewijzigd op 01/01/1970 01:00:00 door
 
PHP erik

PHP erik

18/11/2007 20:41:00
Quote Anchor link
Misschien is read een reserved word.
 

18/11/2007 20:42:00
Quote Anchor link
read ook idd.
 
Patrick

Patrick

18/11/2007 20:49:00
Quote Anchor link
Dan krijg ik de mysql_error melding. Dat hij niet met de db kan werken.
met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"SELECT * FROM pm WHERE to = '" . $session_user . "' && id = '" . $id . "'"


zo werkt het wel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
"SELECT * FROM `pm` WHERE `to` = '" . $session_user . "' && `id` = '" . $id . "'"
en zo ook,
"SELECT * FROM pm WHERE `to` = '" . $session_user . "' && `id` = '" . $id . "'"
 
Joren de Wit

Joren de Wit

18/11/2007 20:51:00
Quote Anchor link
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...
 
Patrick

Patrick

18/11/2007 20:57:00
Quote Anchor link
Zo werkt het,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"SELECT * FROM pm WHERE naar = '" . $session_user . "' && id = '" . $id . "'"


Bedankt voor de reakties.
 
Joren de Wit

Joren de Wit

18/11/2007 20:59:00
Quote Anchor link
Nog een kleine opmerking: && is volgens mij ook geen standaard SQL en wordt alleen door MySQL geaccepteerd. Gebruik daar het liefst gewoon AND.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.