2

可能重复:
我有一个整数数组,如何在 mysql 查询(在 php 中)中使用每个整数?

我正在尝试创建一些过滤函数,我想知道是否有可能在 mysqli 查询中检查表行的值是否等于数组中的一个值。我希望代码会使它更清晰:

$age=array(37,35);
$query = mysqli_query($link, "SELECT * FROM users WHERE age = $age");

所以我希望查询返回年龄为 37 或 35 的所有用户行,但上面的代码不起作用。

使用

...WHERE age = 35 OR age = 37"

不会,因为我希望它可以说是动态的。

谢谢

4

5 回答 5

4

使用 SQL 的IN()子句。

SQL 示例:

SELECT * FROM users WHERE age IN (35, 37)

PHP 示例:

$query = "SELECT * FROM users WHERE age IN (" . implode(',', array_map('intval', $age)) . ")";

注意:注意SQL 注入

于 2012-06-28T16:32:35.683 回答
2
$age=array(37,35); 
$age_str=implode(',',$age);
$query = mysqli_query($link, "SELECT * FROM users WHERE age in ($age_str)"); 
于 2012-06-28T16:34:44.993 回答
1

在 SQL 中使用 php join方法和 IN 子句

$age=array(37,35);
$query = mysqli_query($link, "SELECT * FROM users WHERE age IN (".join(",", $age).")");
于 2012-06-28T16:34:02.143 回答
1

像这样使用它:

$query = mysqli_query($link, "SELECT * FROM users WHERE age IN (" . implode(",",$age) . ")");
于 2012-06-28T16:34:43.500 回答
1

子句中使用。

$ageArr = implode(',',$age);
SELECT * FROM users WHERE age IN ($ageArr);
于 2012-06-28T16:38:53.177 回答