Heim >Backend-Entwicklung >PHP-Tutorial >Wie strukturiert man LIKE-Abfragen mit Parametern in PDO richtig?
Implementieren der LIKE-Abfrage in PDO
Wenn Sie PDO zum Ausführen von Abfragen mit dem LIKE-Operator verwenden, ist es wichtig zu verstehen, wie die richtig strukturiert wird Abfrage und die Parameter. Betrachten Sie die folgende Abfrage:
"$query = "SELECT * FROM tbl WHERE Adresse LIKE '%?%' ODER Adresse LIKE '%?%'";
$params = array($var1, $ var2);"
Fehler:
Die Abfrage führt dazu, dass aufgrund der Prozentzeichen keine Datensätze zurückgegeben werden (%) sind in der Abfrage selbst enthalten und werden nicht als Parameter angegeben.
Lösung:
Um dieses Problem zu beheben:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params);
Erklärung:
Durch die Einbeziehung der Prozentzeichen in die Parameter stellen wir sicher, dass sie ordnungsgemäß behandelt werden Platzhalter, wenn die Abfrage ausgeführt wird. Dadurch wird PDO angewiesen, die entsprechenden Werte durch die tatsächlichen Suchbegriffe zu ersetzen, sodass die LIKE-Operation korrekt ausgeführt werden kann.
Wenn Sie die generierte Abfrage aus Ihrem Originalcode untersuchen, werden Sie etwas in der Art von „SELECT *“ bemerken. FROM tbl WHERE Adresse LIKE '%"foo"%' ODER Adresse LIKE '%"bar"%', wobei die vorbereitete Anweisung fälschlicherweise die Werte innerhalb einer bereits in Anführungszeichen gesetzten Zeichenfolge zitiert. Wenn Sie den oben beschriebenen richtigen Ansatz befolgen, können Sie dieses Problem beheben und LIKE-Abfragen in PDO erfolgreich ausführen.
Das obige ist der detaillierte Inhalt vonWie strukturiert man LIKE-Abfragen mit Parametern in PDO richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!