J'ai un formulaire de recherche très simple, qui prend un terme de GET_, puis l'incorpore dans une requête SQL. Je suis en train d'utiliser cette chaîne de GET dans une requête paramterized, comme ceci:Problème avec des guillemets et une requête SQL paramétrée
$searchString = '%' . $searchString . '%';
$recordsQuery = "SELECT username, firstname, lastname FROM $table WHERE lastname = $searchString" . $max;
if ($getRecords = $con->prepare($recordsQuery)) {
$getRecords->bind_param("s", $searchString);
$getRecords->execute();
$getRecords->bind_result($username, $firstname, $lastname);
$rows = array();
while ($getRecords->fetch()) {
$row = array(
'username' => $username,
'firstname' => $firstname,
'lastname' => $lastname,
);
$rows[] = $row;
}
return $rows;
}
Cependant, cela se traduit par l'erreur
colonne Unkown « terme » dans « where ».
Je suppose que c'est parce que mon terme n'est pas cité, mais l'ajout de guillemets échappés à la variable n'a rien fait.
Les erreurs de syntaxe ou autres sont un produit de modification pour poser cette question, et n'existent pas dans mon code actaul.
OK, je fixe en changeant les lignes suivantes:
$searchstring = "'" . $searchstring . "'";
$recordsQuery = "SELECT username, firstname, lastname FROM $table WHERE lastname = $searchString" . $max;
Je suis sûr que cette approche est probablement mauvaise parce qu'elle ne paramterized ..., mais je ne pouvais pas le faire fonctionner de toute autre manière.
Ajout des citations n'a rien changé. –
Qu'est-ce qui est exactement dans la variable $ max var? – Arkh
Juste un int, une évaluation faite pour voir combien d'enregistrements afficher. –