MySql数据库中的PHP搜索数组

时间:2017-05-29 14:46:22

标签: php mysql arrays

我有一个包含用户ID列表的数组,我需要查看我的所有"用户"在DB中的表,只返回数组包含的数字,最好的方法是什么?

<?php
$users_ids = $_REQUEST["users_ids"];

$myArray = explode('|', $users_ids);
print_r($myArray);

请帮忙。

2 个答案:

答案 0 :(得分:1)

以下内容如何:

$users_ids = $_REQUEST["users_ids"];
$users_ids_array = array_map('intval',explode('|', $users_ids)) ;

$query = "SELECT * FROM users WHERE id IN (" . implode(',', $users_ids_array) . ")" ;

上面的代码将生成一个mysql,只检索那些用户ID:

SELECT * FROM users WHERE id IN (
    234 , # an example user_id
    545 , # an example user_id
    565   # an example user_id
)

请注意上面的array_map函数来保护$_REQUEST["users_ids"]变量,确保用户ID只是整数,而不是" 233) ; DELETE FROM users ; # "等危险字符串 - &gt ; (在这种情况下array_map阻止SQL注入)

答案 1 :(得分:0)

在select语句中,使用IN子句。要构造语句,请将数组内嵌到逗号分隔的列表中(而不是垂直条)。如果您的数组包含1,2,3,4,则生成的SQL语句可能如下所示:

SELECT *
FROM users
WHERE user_id in (1,2,3,4)