首页 > 解决方案 > mysqli数组到子查询中的mysql?

问题描述

我有这个选择:

$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 格式?

标签: phpmysqlmysqli

解决方案


实现此目的的一种方法是创建另一个字符串变量并将结果追加到$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”格式,然后您可以将该参数绑定到您的下一个查询。


推荐阅读