首頁 > 資料庫 > mysql教程 > 如何正確使用 MySQLi 預先準備語句和 IN 運算子?

如何正確使用 MySQLi 預先準備語句和 IN 運算子?

Mary-Kate Olsen
發布: 2024-12-17 11:00:25
原創
815 人瀏覽過

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

使用IN 運算子的MySQLi 準備語句

本文解決了在MySQLi 中使用IN 運算子和準備語句從資料庫中選擇行語句的問題。原發者提供的初始代碼:

$data_res = $_DB->prepare('SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN (?)');
$data_res->bind_param('s', $in_statement);
$data_res->execute();
登入後複製

儘管資料庫中存在數據,但未能傳回任何結果。

解決方案涉及透過引用手動綁定每個參數:

$lastnames = array('braun', 'piorkowski', 'mason', 'nash');
$arParams = array();

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 = $_DB->prepare('SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN ('.$params.')');
call_user_func_array(array($data_res, 'bind_param'), $arParams);
$data_res->execute();
登入後複製

這種方法允許使用 IN 運算子正確執行準備好的語句,確保從資料庫。

以上是如何正確使用 MySQLi 預先準備語句和 IN 運算子?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板