php - 将 MYSQL 查询从 for 循环中取出

标签 php mysql

我正在尝试编写一个查询,而不使用任何类型的循环来从数据库中获取值。我有一个数组 $guest_list_guest_ids 存储了我想要提取的所有 id。

不太确定如何在没有循环的情况下完成此操作,每次我都会根据我正在解析的 ID 更改查询。

    $query = 'SELECT * FROM guest_list_guests' . implode(',', $guest_list_guest_ids);
    echo $query;

非常感谢任何帮助或意见。

最佳答案

这假设您正在使用 PDO,但应该适用于 MySQLi:

// the frame of the query we're going to prepare
$query_frame = 'SELECT * FROM guest_list_guests WHERE id IN (%s);'

// generate a placeholder string, one for each element in the array of ids
$placeholders = implode(',', array_fill(0, count($guest_list_guest_ids), '?'));

// make the query string, eg: SELECT * FROM guest_list_guests WHERE id IN (?,?,?,?,?);
$query = sprintf($query_frame, $placeholders);

// prepare
$stmt = $dbh->prepare($query);

// execute
$stmt->execute($guest_list_guest_ids);

// get results
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));

关于php - 将 MYSQL 查询从 for 循环中取出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29711588/

相关文章:

javascript - PHP、jQuery 和 Ajax 历史

PHP脚本将MySQL数据返回到表中,需要回车

mysql - 创建比较 SQL

php - pg_lo_write 在哪里存储它的内容?

php - mysql_fetch_array 仅在有更多行时显示 1 行

mysql - 如何加速复杂的ORDER BY?

具有多个 AND 语句的 MySQL 查询似乎忽略了一个

javascript - 如何使用 ajax 链接到新页面并加载 div?

php - 在 URL 中包含表单选择值

php - Django/Python 中是否有一个类似于 PHP flush() 的函数可以让我向客户端发送部分 HTTP 响应?