gpt4 book ai didi

php - 我可以使用 MYSQLI 和 PHP 将多个值绑定(bind)为单个参数吗?

转载 作者:可可西里 更新时间:2023-11-01 07:54:56 26 4
gpt4 key购买 nike

假设我有以下 SQL 查询:

SELECT id,name FROM user WHERE id IN ('id1','id2','id3')

现在假设我需要由 PHP 提供的 ID 数组。所以我有这样的东西:

$idList = array('id1','id2','id3');
$query = "SELECT id,name FROM user WHERE id IN (?)";
$stmt = $db->prepare($query);
$stmt->bind_param(/*Something*/);

我可以用什么替换 /*Something*/ 以获得与原始查询相同的结果?或者我需要在查询格式中输入3个问号吗?我不想这样做的唯一原因是问号的数量是可变的,所以我必须手动构建查询字符串。

最佳答案

您可以使用 PHP 使用 str_repeat() 写出占位符 ?,然后在一个循环中 bind_param 所有参数。

请注意 str_repeat 将返回的尾随逗号。 rtrim() 或使用 array_fill() 创建重复占位符数组,然后使用 join() 创建占位符字符串.

$arrPlaceholders = array_fill(0, count($idList), '?') ;
$strPlaceholders = join(', ', $arrPlaceholders) ;

那么你的查询可以是:

$query = "SELECT id,name FROM user WHERE id IN ($strPlaceholders)";

并且您可以在循环中绑定(bind)参数。

关于php - 我可以使用 MYSQLI 和 PHP 将多个值绑定(bind)为单个参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3753295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com