php中的数组到字符串转换错误

时间:2016-03-28 12:22:57

标签: php mysql arrays

我使用以下代码将数组值传递给mysql查询但是数组到字符串转换错误将会出现

$sql =mysql_query("SELECT userId from groupmembers where groupId='$groupId'");
$bjson = array();
$i = 0; 
while($result=mysql_fetch_assoc($sql))
{ 
    $bjson[$i]['userId'] = $result['userId'];

    $i++; 
}

$query = "SELECT firstName 
     FROM users 
     WHERE userId IN('" . implode("','", $bjson) ."')";

2 个答案:

答案 0 :(得分:6)

不需要两个查询和循环只需使用

SELECT firstName 
     FROM users 
     WHERE userId IN(SELECT userId from groupmembers where groupId='$groupId')
  

注意: - 不推荐使用mysql而是使用mysqli或PDO

阅读How can I prevent SQL injection in PHP?

答案 1 :(得分:1)

可以在查询中使用连接来保存循环

SELECT u.firstName FROM users u JOIN groupmembers gm ON gm.userID = u.userID WHERE gm.groupID='$groupId'