$ids = array(1,2,3); $in = implode(',',$ids); $query = "SELECT * FROM user where user_id IN ($in) ";
查询工作没问题。但是什么时候$ids是空数组$ids = array();
$ids
$ids = array();
我正确地得到了sql查询错误,因为SELECT * FROM user where user_id IN ()这不是有效的查询。
SELECT * FROM user where user_id IN ()
如何在不检查空数组的情况下避免这种情况,即无论如何都使查询运行?
最好的管理方法是:
$in = implode("','",$ids); // generate like 1','2 $query = "SELECT * FROM user where user_id IN ('$in') "; // if has 1','2 surrond it with quote make it IN('1','2') and if empty than IN('')
这样可以避免您使用if / else结构和其他所有内容