【发布时间】:2018-09-12 06:42:55
【问题描述】:
我现在正在创建我自己的查询生成器,并且我坚持使用 PDO 的准备好的语句。是否可以循环 PDO 的 BindParam。我使用 foreach() 完成了它,但它不能仅在循环执行的最后一个数据上工作。
$sql = "SELECT * FROM users WHERE id = :a OR fname = :b";
$array = array(":a"=>"10002345", "Josh");
$stmt = $conn->prepare($sql);
foreach($array as $key => $value ) {
$stmt->bindParam($key, $value);
}
$stmt->execute();
它只绑定循环执行的最后一个数据。
【问题讨论】:
-
另外请提及数组中的所有键,因为缺少 :b
-
“它只适用于循环执行的最后一个数据” - 请澄清这是什么意思。
-
我的意思是没有正确绑定
-
我认为你覆盖了 bind 的参数,你还必须在 for 循环中执行 $stmt->execute();。
-
那么我需要把execute()放在循环里面吗?