【发布时间】:2015-03-14 17:11:40
【问题描述】:
我有一个 foreach 循环,我想执行一个准备语句 pdo。我已经阅读了一些关于参考的帖子,但我不知道如何使用我的代码:
$str = ":City, Aurora; :State, CO";
$wherestr = explode(";",$str);
$sql = "SELECT * FROM Organization WHERE City = :City AND State= :State";
$stmt = $db->prepare($sql);
foreach ($wherestr as $ws) {
$ws = explode(",",$ws);
$ws0 = trim($ws[0]);
$ws1 = trim($ws[1]);
$stmt->bindParam($ws0,$ws1);
}
$stmt->execute();
我在这里阅读过Binding params for PDO statement inside a loop,您可以通过使用 & 符号创建引用来完成这项工作,但我没有像他们那样使用 Key=>Value。谁能帮我让这个循环通过参数并执行?
如果我只有一个 WHERE (:var),那么它工作正常,但如果我有多个 WHERE 过滤器,它似乎会覆盖前一个过滤器,而不是执行执行语句中的所有 bindParams。我没有收到任何错误,只是没有使用多个 var 正确过滤结果。
谢谢。
【问题讨论】:
-
您错误地使用了
foreach。您覆盖每个循环中的参数。 -
我知道很多,这就是我写这篇文章的原因。我需要知道如何解决它!
-
我们需要知道您的 SQL 语句如何才能提供帮助。
-
@Raptor 我添加了我的代码/sql