Sql查询产生“数组到字符串转换错误”

时间:2017-09-16 20:07:50

标签: php sql arrays

我在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}}

在上面的代码中。

2 个答案:

答案 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;
 }
}