mysqli数组到子查询中的mysql?

时间:2018-05-09 22:02:38

标签: php mysql mysqli

我有这个选择:

$stmt = $mysqli->prepare("select following from following where user =? and block=0");
$stmt->bind_param('i', $user);
$stmt->execute();
$stmt->bind_result($followers);
$stmt->fetch();
$stmt->close();

我想在另一个mysql连接中使用$ followers:

  

select ... from ... where(p.user in())

在这个?中我想将$ followers变量放在mysql格式中。 (1,5,7,2)。 有关如何将bind_result $ followers转换为此格式的mysql的任何想法吗?

1 个答案:

答案 0 :(得分:1)

实现此目的的一种方法是创建另一个字符串变量,并将$followers的结果附加到while循环中。

我通常以程序样式工作,我假设你的语句将多行返回$followers

$sql_in_string = '';   // initialize string variable as blank
while (mysqli_stmt_fetch($stmt)){
    $sql_in_string = $sql_in_string . $followers . "," ; // append value + comma
}
$sql_in_string = rtrim($sql_in_string,",");  // remove the final comma

此时,$sql_in_string的值应为" 1,2,3"格式然后您可以将该参数绑定到下一个查询。