SELECT IN语句不能正常工作

时间:2016-11-02 02:43:08

标签: php mysql pdo

我试图从mysql中选择IN。 我有这个问题:SELECT id, name FROM country WHERE id IN (2,1) 如果我从phpmyadmin运行它,我会得到两行,但是当我想在一个函数中执行它时,我只得到一行 这是我的功能

function search($res) {
    global $pdo;
    $arr = [$res];
    $in  = str_repeat('?,', count($arr) - 1) . '?';
    $sql = "SELECT id, name FROM country WHERE id IN ($in)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute($arr);
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    return $stmt->rowCount();
}

我错过了什么? 问题似乎来自count($ arr),回到1。

1 个答案:

答案 0 :(得分:-1)

发现问题

$arr = [$res] - > $arr = explode(',', $res)

我将数组的所有元素作为第一个也是唯一的元素,我不得不用逗号进行爆炸以获取实际的数组。