这个问题在这里已经有了答案:
A prepared statement, `WHERE .. IN(..)` query and sorting — with MySQL
(8 个回答)
Can I bind an array to an IN() condition?
(22 个回答)
5年前关闭。
我有一组数字,我试图从 mysql 数据库中的表中获取不同的创建者。如果我直接输入字符串,我会得到数据,但如果我使用这种方法来内爆数组和 bind_param,我会得到零行。
$array = array('1','2','3','4','5','6','7');
$in_array = "'".implode("','", $array)."'";
$statement = $conn->prepare("select distinct creator from table where coll in ( ? );");
$statement->bind_param('s', $in_array);
$statement->execute();
$result = $statement->get_result();
if ($result->num_rows > 0) { //do something }
else { echo "none found"; }
最佳答案
您需要为列表中的每一项设置一个占位符,而不是为整个列表使用一个占位符。
关于有数据时 PHP MySQL 得到零结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41960676/