【发布时间】:2011-05-06 15:40:30
【问题描述】:
我可以在 mysql select 中放入一个数组吗?
$usersArray = array(34, 23, 17, 17, 56);
$result = mysql_query("SELECT * FROM users WHERE user_id=$usersArray");
我可以这样做吗?
【问题讨论】:
我可以在 mysql select 中放入一个数组吗?
$usersArray = array(34, 23, 17, 17, 56);
$result = mysql_query("SELECT * FROM users WHERE user_id=$usersArray");
我可以这样做吗?
【问题讨论】:
没有。我相信你应该这样做:
$result = mysql_query("SELECT * FROM users WHERE user_id IN (" . implode(', ', $usersArray) . ")");
【讨论】:
$usersArray = array(34, 23, 17, 17, 56);
$result = mysql_query("SELECT * FROM users WHERE user_id in (".
implode(",",$usersArray).
")");
这是不安全的,因为将 sql 参数作为连接字符串放置。但你大概明白了。
【讨论】:
试试:
$usersArray = array(34, 23, 17, 17, 56);
$usersIn = implode(",",$usersArray);
$result = mysql_query("SELECT * FROM users WHERE user_id in($usersIn)");
“in”将 user_id 与括号内逗号分隔列表中的任何条目进行比较。
【讨论】: