Heim > Datenbank > MySQL-Tutorial > Wie verwende ich den IN-Operator korrekt mit von MySQLi vorbereiteten Anweisungen und mehreren Parametern?

Wie verwende ich den IN-Operator korrekt mit von MySQLi vorbereiteten Anweisungen und mehreren Parametern?

Linda Hamilton
Freigeben: 2024-12-17 17:06:15
Original
652 Leute haben es durchsucht

How to Correctly Use the IN Operator with MySQLi Prepared Statements and Multiple Parameters?

Verwendung des IN-Operators mit MySQLi-vorbereiteten Anweisungen

Bei der Verwendung des IN-Operators mit IN-Operator in MySQLi-vorbereiteten Anweisungen ist die richtige Formatierung von entscheidender Bedeutung die Parameter. Der ursprünglich bereitgestellte Code:

$data_res = $_DB->prepare('SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN (?)');
$data_res->bind_param('s', $in_statement);
Nach dem Login kopieren

enthält einen Fehler, da $in_statement eine Zeichenfolge und kein Array von Werten ist. Um dieses Problem zu beheben, wird ein alternativer Ansatz mit der Funktion call_user_func_array vorgestellt:

$int = str_repeat('i', $count_params);
array_unshift($arParams, $int);

$q = array_fill(0, $count_params, '?');
$params = implode(',', $q);

$data_res = $_DB->prepare('SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN ('.$params.')');
call_user_func_array(array($data_res, 'bind_param'), $arParams);
Nach dem Login kopieren

In diesem modifizierten Code:

  • $count_params bestimmt die Anzahl der zu übergebenden Parameter.
  • str_repeat('i', $count_params) erstellt eine Zeichenfolge mit i Zeichen, die der Anzahl von entspricht Parameter, die den Datentyp für jeden Parameter darstellen.
  • array_unshift($arParams, $int) stellt die Datentypzeichenfolge dem $arParams-Array voran.
  • array_fill(0, $count_params, '? ') generiert eine Reihe von Fragezeichen für die IN-Klausel.
  • call_user_func_array wird dazu verwendet Binden Sie mehrere Parameter gleichzeitig und übergeben Sie das Array $arParams als Argument.

Das obige ist der detaillierte Inhalt vonWie verwende ich den IN-Operator korrekt mit von MySQLi vorbereiteten Anweisungen und mehreren Parametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage