想象一下,我有以下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个问号?我不想这样做的唯一原因是因为问号的数量是可变的,所以我将不得不手动构建查询字符串。
/*Something*/
我可以使用MYSQLI和PHP将多个值绑定为单个参数吗?
你不能。
对于您的情况,您应该以编程方式构建查询字符串。如果可以保证它将始终是三个值,则可以向SQL添加三个标记,然后通过遍历数组进行绑定。