Php 向PDO sql语句动态添加WHERE参数
我需要使用PDO在PHP中构建一个SQL语句,WHERE子句中的值数量是动态的 e、 g 在本例中,我比较的where子句中有两个类别,但可能不止两个,因此我不能仅使用:category1和:category2作为名称 我尝试了以下操作,但它给出了一条“一般错误:2031”消息Php 向PDO sql语句动态添加WHERE参数,php,mysql,pdo,Php,Mysql,Pdo,我需要使用PDO在PHP中构建一个SQL语句,WHERE子句中的值数量是动态的 e、 g 在本例中,我比较的where子句中有两个类别,但可能不止两个,因此我不能仅使用:category1和:category2作为名称 我尝试了以下操作,但它给出了一条“一般错误:2031”消息 有什么建议吗?如果有许多类别,请在语句中使用SQL 您可以在此处查看如何将其绑定到阵列: 请参见上述关于IN语句的注释,但如果您仍计划使用动态生成的where零件,则应使用问号(?)或为每个PDO伪变量创建唯一名称: $
有什么建议吗?如果有许多类别,请在语句中使用SQL
您可以在此处查看如何将其绑定到阵列:
请参见上述关于IN语句的注释,但如果您仍计划使用动态生成的where零件,则应使用问号(?)或为每个PDO伪变量创建唯一名称:
$where = array("category = ?", "category = ?");
$params = array("abc", "xyz");
$query = "SELECT column1, column2 FROM table WHERE ". implode(" OR ", $where);
$s= $h->prepare($query);
$s->setFetchMode(PDO::FETCH_ASSOC);
$s->execute($params);
阅读此处了解更多详细信息:感谢您的快速回复。我将研究IN()条件。这应该作为重复标志发布,而不是作为答案发布。@Shadow如果OP不知道
语句中的,他将无法搜索如何将参数绑定到它。OP无法通过搜索找到其他主题的事实与其问题是重复的无关。将一个问题标记为另一个问题的副本会告诉OP他/她的问题已经在这里得到了回答。你的陈述部分正确,但你应该更加注意你发布的代码
$where = array("category = :category", "category = :category");
$params = array("abc", "xyz");
$query = "SELECT column1, column2 FROM table WHERE ". implode(" OR ", $where);
$s= $h->prepare($query);
$s->setFetchMode(PDO::FETCH_ASSOC);
$s->execute(array_values($params));
$where = array("category = ?", "category = ?");
$params = array("abc", "xyz");
$query = "SELECT column1, column2 FROM table WHERE ". implode(" OR ", $where);
$s= $h->prepare($query);
$s->setFetchMode(PDO::FETCH_ASSOC);
$s->execute($params);