首页 > 数据库 > mysql教程 > 如何正确使用 MySQLi 预准备语句和 IN 运算符?

如何正确使用 MySQLi 预准备语句和 IN 运算符?

Mary-Kate Olsen
发布: 2024-12-17 11:00:25
原创
818 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板