Ich habe einige alte Code mit vorgefertigten Anweisungen auf die neue msqli-Schnittstelle übertragen, ich habe Probleme mit SQL-Anweisungen, die die IN-Klausel enthalten. Ich würde dies nur normalerweise tun:Wie verwenden Sie IN-Klauseln mit mysqli vorbereiteten Anweisungen
$ids = '123,535,345,567,878'
$sql = "SELECT * FROM table WHERE id IN ($ids)";
$res = mysql_query($sql);
diese Umwandlung in mysqli und vorbereitete Anweisungen habe ich eine Reihe von Lösungen versucht:
$ids = '123,535,345,567,878'
$ids = implode($ids,',');
$result = $msqli->prepare("SELECT foo,blar FROM table WHERE id IN (?));
$result->bind_param("i", $ids);
$result->execute();
Die oben ausfällt und die Berechnung der Anzahl der Elemente in dem Array und Ändern Die Anzahl der Fragezeichen in der SQL-Zeichenfolge und das Aufrufen von bind_parm für jedes Element im Array schlägt ebenfalls fehl. Die Verwendung der durch Komma getrennten Zeichenfolge schlägt ebenfalls fehl.
Ich kann keine gute Dokumentation in Google finden, also wie haben Sie das Problem gelöst?
Mögliche Duplikat [? PreparedStatement IN-Klausel Alternativen] (https://stackoverflow.com/questions/178479/preparedstatement -in-clause-alternatives) – bfavaretto