相关疑难解决方法(0)

使用WHERE子句将数组传递给查询

给定一组id $galleries = array(1,2,5)我想要一个SQL查询,它在WHERE子句中使用数组的值,如:

SELECT *
FROM galleries
WHERE id = /* values of array $galleries... eg. (1 || 2 || 5) */
Run Code Online (Sandbox Code Playgroud)

如何生成此查询字符串以用于MySQL?

php mysql arrays

303
推荐指数
12
解决办法
54万
查看次数

PHP - 将PDO与IN子句数组一起使用

我正在使用PDO执行一个带有IN子句的语句,该子句使用数组作为它的值:

$in_array = array(1, 2, 3);
$in_values = implode(',', $in_array);
$my_result = $wbdb->prepare("SELECT * FROM my_table WHERE my_value IN (".$in_values.")");
$my_result->execute();
$my_results = $my_result->fetchAll();
Run Code Online (Sandbox Code Playgroud)


上面的代码完全正常,但我的问题是为什么这不是:

 $in_array = array(1, 2, 3);
    $in_values = implode(',', $in_array);
    $my_result = $wbdb->prepare("SELECT * FROM my_table WHERE my_value IN (:in_values)");
    $my_result->execute(array(':in_values' => $in_values));
    $my_results = $my_result->fetchAll();
Run Code Online (Sandbox Code Playgroud)

此代码将返回my_value等于$in_array(1)中第一项的项,但不返回数组中的其余项(2和3).

php mysql pdo prepared-statement in-clause

60
推荐指数
3
解决办法
5万
查看次数

MySQL PHP - SELECT WHERE id = array()?

可能重复:
使用数组的MySQL查询将数组
传递给mysql

我在PHP中有一个数组:

$array = array(1, 4, 5, 7);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有一个不同值的数组,但我想编写一个MYSQL语句来检查它id是否等于数组中的任何值.例如,如果一行的id值为1,则它将返回该行,对于4,5和7也是如此.由于程序的性质,数组的长度可能会有所不同,因此这就是问题所在.我可以这样做:

SELECT ...
  FROM ...
 WHERE id = '$array'
Run Code Online (Sandbox Code Playgroud)

或者,还有更好的方法?
如果我不清楚,请向我询问更多信息.

html php mysql arrays

37
推荐指数
3
解决办法
17万
查看次数

标签 统计

mysql ×3

php ×3

arrays ×2

html ×1

in-clause ×1

pdo ×1

prepared-statement ×1