我在sql语句中使用数组,并且它产生错误
“文件名和行号”中的数组到字符串转换。
这是我的代码。
$query1 = $mysqli->query("SELECT * FROM user WHERE u_id IN ('$temp[$i]')");
我也试过这个
$query1 = $mysqli->query("SELECT * FROM user WHERE u_id IN ('$temp')");
而不是
{{1}}
在上面的代码中。
答案 0 :(得分:3)
如果您想获得SELECT * FROM user WHERE u_id IN (2,3,4,9)
,请将数组转换为逗号分隔字符串implode(',', $temp)
调整您的代码,如:
$tmp = [2, 3, 4, 9];
$usersStr = implode(',', $tmp);
...
$query1 = $mysqli->query("SELECT * FROM user WHERE u_id IN ($usersStr)");
答案 1 :(得分:1)
您在循环中运行查询。你传输数组,但必须是字符串。
$temp=array(2,3,4,9);
// Convert to string
$str = implode(',', $temp);
for($i=4;$i>=0;$i--){
$query1=$mysqli->query("SELECT * FROM user WHERE u_id IN (".$str.")");
if($query1->num_rows){
echo '<br> hello'.$i;
}
}