从循环中保存变量以在SQL语句中使用

时间:2018-05-26 02:39:16

标签: php sql

下面我将$ name保存为

//$username is a session variable
$sql = "SELECT * FROM followers WHERE user = '$username'";
foreach ($pdo->query($sql) as $data) {
          $friendsName = $data['friend'];
          echo"$name";
        }

我正在尝试将$ friend的每个值保存在一个变量或一个数组中,以便我可以使用下面的SQL语句来显示所有形式的$ variable

$sql2 = "SELECT * FROM posts WHERE username = $name ";

或者如果我必须使它成为一个数组

$sql2 = "SELECT * FROM posts WHERE username IN ($friendArray)";

因此,如果$ variable等于'某些'和' name' sql语句将找到具有用户名的行等于' some'并且' name'。

我希望这是有道理的。谢谢!

1 个答案:

答案 0 :(得分:0)

你没有。请改用JOININEXISTS,以便只运行一个查询:

select p.*
from posts p
where p.username in (select f.friend from followers f where f.user = ?);

请注意,?是参数占位符。不要使用常量值来查询字符串;学会使用参数。