在MYSQL中使用IN会导致PHP

时间:2016-05-14 14:58:27

标签: php mysql pdo

在网站上工作时,我发现PDO存在一个相当奇怪的问题。以下代码仅选择用户1发出的帖子,而不是3。

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

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

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

为什么会这样,我能做些什么才能使第一个像第二个一样工作?

1 个答案:

答案 0 :(得分:0)

你必须写这样的查询

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