php - mySQL只选择有多个ID匹配的一行

标签 php mysql pdo

我正在尝试使用 mySQL、PHP 和 PDO 选择多个 ID,如下所示:

$scheme_ids = "23,24";

// get details for all permitted schemes
$stmt = $pdo->prepare("SELECT * FROM schemes WHERE id IN(?)");
$stmt->execute([$scheme_ids]);
$schemes = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = null;

foreach ($schemes as $scheme){
    echo $scheme['reference']."<br>";     
}

方案表中有两个 ID 的行,但它只选择 ID 23 的值。结果数组不包含 ID 24 的任何内容。

有人有什么想法吗?

最佳答案

你应该试试这个方法

$id= array();
//add value into array like $id[]=23; $id[]=24
//convert the array to a csv string for use with the query
$id= implode(',', $id);
$stmt = $pdo->prepare("SELECT * FROM schemes WHERE id IN(?)");
$stmt->execute($id);
$schemes = $stmt->fetchAll(PDO::FETCH_ASSOC);

关于php - mySQL只选择有多个ID匹配的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51928421/

相关文章:

php - Laravel 重定向似乎不起作用

php - 当大约 400 万条记录输入 MYSQL 时浏览器崩溃

mysql - 如何设置 django 和 mysql 使用 UTF-8

php - 当我用 PDO 重写我的代码时,计数不起作用

php - 无法向数据库插入MCRYPT加密数据

php - 表单提交功能中的jquery点击功能

php - 从mysql数据库中删除特定用户记录

php - 创建一个 PHP 网络应用程序以允许用户对提交的内容进行投票 - 如何最大程度地减少滥用

php - mysql 声明列位置并同时添加注释

php - 在 Zend Framework 中缓存 PDOStatement 对象