MySQL IN语句的PDO绑定值

MySQL IN语句的PDO绑定值

我有一个PDO的问题,我很想在被它困扰很长一段时间后得到答案。

举个例子:

我将一个ID数组绑定到PDO语句,以便在MySQL IN语句中使用。

该数组将是:$ values = array(1,2,3,4,5,6,7,8);

数据库安全变量是$ products = implode(','$ values);

因此,$ products将成为STRING,其值为:'1,2,3,4,5,6,7,8'

声明如下:

SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (:products)

当然,$产品将被声明为:产品

但是,当编译语句并绑定值时,它实际上看起来像这样:

SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN ('1,2,3,4,5,6,7,8')

问题是它将IN语句内部的所有内容作为单个字符串执行,因为我已将其准备为逗号分隔值以绑定到语句。

我真正需要的是:

SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (1,2,3,4,5,6,7,8)

我实际上可以实现这一点的唯一方法是将值放在字符串本身而不绑定它们,但我知道必须有一种更简单的方法来做到这一点。


30秒到达战场
浏览 843回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP