我试图从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。
答案 0 :(得分:-1)
发现问题
$arr = [$res]
- > $arr = explode(',', $res)
我将数组的所有元素作为第一个也是唯一的元素,我不得不用逗号进行爆炸以获取实际的数组。