提问者:小点点

在MYSQL中使用会导致PHP中的变量出现问题


在一个网站上工作时,我发现了一个相当奇怪的PDO问题。下面的代码只选择用户1发的帖子,不选择或3。

$sql = "SELECT postid FROM posts WHERE userid IN (:friends)";
$pdo->prepare($sql);
$pdo->execute(array(':friends' => '1, 2, 3'));

但是,以下代码从所有三个选项中选择post:

$sql = "SELECT postid FROM posts WHERE userid IN (1, 2, 3)";
$pdo->prepare($sql);
$pdo->execute();

这是为什么,我能做些什么让第一个像第二个一样工作?


共1个答案

匿名用户

您必须这样编写查询

$sql = "SELECT postid FROM posts WHERE userid IN (:friend1, :friend2, :friend3)";
$pdo->prepare($sql);
$pdo->execute([
    ':friend1' => '1',
    ':friend2' => '2',
    ':friend3' => '3',
]);