Variabele in SELECT ... WHERE ...

Status
Niet open voor verdere reacties.

krolik

Terugkerende gebruiker
Lid geworden
22 apr 2007
Berichten
1.787
Ik heb een database met een tabel Personen. Volgende regels zijn een deel van een PHP-bestand. Dit werkt goed. In zie dan dus alleen de records met de plaats "Rotterdam".

$sql = 'SELECT id, naam, adres, plaats FROM Personen WHERE plaats = "Rotterdam"';
$result = mysql_query($sql);

Maar nu wil ik dit proberen d.m.v. een variabele $plaats.

$plaats = "Rotterdam";

$sql = 'SELECT id, naam, adres, plaats FROM Personen WHERE plaats = $plaats';
$result = mysql_query($sql);

Maar dat resulteert in een foutmelding:

"DB Error, could not query the database MySQL Error: Unknown column '$plaats' in 'where clause'"

Waar gaat het fout?
 
Je behandelt plaats niet als een string, dus denkt MySQL dat je een veldnaam bedoeld. Zet deze tussen quotes.

Ook dat ik aan om je te verdiepen in de MySQLi-functies of PDO, omdat in PHP 7 de mysql-functie bibliotheek verwijderd is.

O ja, tussen 'single quotes' worden variabelen nooit uitgevoerd. Dus plaats je variabele buiten de single quotes.
 
Laatst bewerkt:
Bedankt voor je reactie. Ik heb heel het internet afgezocht, maar heb niets kunnen vinden. Als je soms een kant en klaar antwoord hebt, hoor ik dat graag.
 
Ik had ook al gezocht in W3schools.com. Maar ik kan helaas niet vinden wat ik zoek. Ik zoek op 'SELECT ... WHERE ...'.
 
Code:
$name = "Klaasje";
$sql = "SELECT id, firstname, lastname FROM MyGuests WHERE firstname = '".$name."'";

Eerst single quotes omdat je een string behandelt in je query. En dan je quotes van PHP onderbreken om je variabele te plaatsen.

Overigens is dit best basis PHP kennis die je eigenlijk alleen het eerste hoofdstuk al geleerd moet hebben, met hoe quotes werken ;).
 
Laatst bewerkt:
Het werkt. Heel fijn. Mijn hartelijke dank.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan