我尝试使用mysql、php和pdo选择多个ID,如下所示:
$scheme_ids = "23,24";
// get details for all permitted schemes
$stmt = $pdo->prepare("SELECT * FROM schemes WHERE id IN(?)");
$stmt->execute([$scheme_ids]);
$schemes = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = null;
foreach ($schemes as $scheme){
echo $scheme['reference']."<br>";
}
schemes表中有两个id的行,但它只选择id 23的值。结果数组不包含id 24的任何内容。
有人有什么想法吗?
3条答案
按热度按时间5kgi1eie1#
你应该这样试试
bmvo0sr52#
您可以尝试将数组定义为scheme id而不是string,请检查以下方法:
w8f9ii693#
从pdostatement::execute的文档中:
不能将多个值绑定到单个参数;例如,不允许将两个值绑定到in()子句中的单个命名参数。
在这种情况下不能使用语句准备;您必须将这些值连接到查询字符串中。我想
$scheme_ids
是动态地从实际应用程序中的某种用户输入中获取的,因此请确保正确地对其进行转义。