Bei der Verwendung vorbereiteter Anweisungen ist es wichtig, Variablen ordnungsgemäß mit der SQL-Abfrage zu verketten. Eine falsche Syntax kann zu Fehlern führen, wie sie beispielsweise in den folgenden Codefragmenten auftreten:
$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{$var}%' '; // Error: Number of variables doesn't match number of parameters $sql = 'SELECT * FROM `users` WHERE username LIKE %{?}% '; // Error: Wrong SQL
Um diese Fehler zu vermeiden, führen Sie die folgenden Schritte aus:
$likeVar = "%" . $yourParam . "%";
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->bind_param("s", $likeVar);
In diesem Beispiel enthält $likeVar den Wert, der sein soll mit Platzhaltern ("%...%") gesucht. Durch die Bindung an den Parametertyp s (String) wird sichergestellt, dass er in der Datenbankabfrage ordnungsgemäß behandelt wird.
Wenn Sie eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung benötigen, können Sie die Klausel COLLATE utf8mb4_bin zu Ihrer hinzufügen Abfrage:
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ? COLLATE utf8mb4_bin");
Das obige ist der detaillierte Inhalt vonWie verkettet man Variablen ordnungsgemäß mit vorbereiteten Anweisungen in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!