我需要使用PDO在PHP中构建SQL语句,并且WHERE子句中的值数是动态的。将WHERE参数动态添加到PDO sql语句
例如
SELECT column1, column2 FROM table WHERE category = :category OR category = :category
在这种情况下,有2个类别的where子句中,我比较在,但它可能会超过200,所以我不能只用:类别1和:产品组别的名称。
我尝试以下,但它给人一种 “常规错误:2031” 信息
$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));
有什么建议?
感谢您的快速回复。我会研究IN()条件。 – user1480951
这应该作为重复的标志发布,而不是作为答案。 – Shadow
@Shadow如果OP不知道“IN”语句,他不能搜索如何将参数绑定到它。 – blue112