„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie benutze ich mySQLI -vorbereitete Aussagen mit dem In -Operator effektiv?

Wie benutze ich mySQLI -vorbereitete Aussagen mit dem In -Operator effektiv?

Gepostet am 2025-03-23
Durchsuche:467

How to Use MySQLi Prepared Statements with the IN Operator Effectively?

mysqli erstellte Aussagen mit dem in Operator

Vorbereitete Anweisungen bieten eine erweiterte Sicherheit und Leistung über traditionelle Abfragen an, indem Sie die Parameterwerte getrennt von der Anweisung selbst angeben. Wenn es jedoch darum geht, vorbereitete Aussagen mit dem In-Operator zu verwenden, können Sie auf Probleme stoßen, wenn Ihr Ansatz nicht korrekt ist.

Das Problem

, wie in der anfänglichen Abfrage erwähnt, bindend ein Komma-separatter Zeichenfolge, obwohl die hergestellten Aussage in den Daten, obwohl die Daten nicht in der Lage sind, in den Daten, $ in $., $ in_statement). Datenbank.

Die Lösung

Die Lösung liegt in der Behandlung jedes Parameterwerts einzeln:

  1. Erstellen Sie eine Array mit nummerierten Schlüssel und geben Werte über die geeigneten Punkte aus. Typ.
  2. Kombinieren Sie die Datentyp -Zeichenfolge mit einem Array von Fragenmarken, um die Parameterzeichenfolge für die vorbereitete Anweisung zu formen.
  3. den Datentyp -String in das Array von Parameterwerten
  4. verwenden. Anweisung.
Beispielcode

php $ lastnames = ['braun', 'piorgowski', 'mason', 'nash']; $ arparams = []; foreach ($ lastNames as $ key => $ value) { $ arparams [] = & $ lastnames [$ key]; } $ count_params = count ($ arparams); $ int = str_repeat ('i', $ count_params); array_unshift ($ arparams, $ int); $ q = array_fill (0, $ count_params, '?'); $ params = implode (',', $ q); $ data_res = $ mysqli-> prepe ("Select` id`, `name`,` ay` von `user`` wobei` lastname` in ({$ params}) “); call_user_func_array ([$ data_res, 'bind_param'], $ arparams); $ data_res-> execute (); $ result = $ data_res-> get_result (); while ($ data = $ result-> fetch_array (mysqli_assoc)) { // dein Code hier ... } $ result-> free (); $ data_res-> close ();

 $value) {
    $arParams[] = &$lastnames[$key];
}

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

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

$data_res = $mysqli->prepare("SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN ({$params})");
call_user_func_array([$data_res, 'bind_param'], $arParams);
$data_res->execute();
$result = $data_res->get_result();

while ($data = $result->fetch_array(MYSQLI_ASSOC)) {
    // Your code here...
}

$result->free();
$data_res->close();
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3