php - 从 ID 数组获取数据库结果

标签 php mysql select multidimensional-array pdo

对于这个问题的新颖性,我们深表歉意。我刚开始一个项目,我有一组 ID 可以从表中获取某些记录。解决此问题的最佳方法是什么?

以下是否有效?

public function getWork($slideIDs) {
    $params = array();
    $params = $slideIDs;

    $count = count($params);

    for($i=0;$i<$count;$i++) {
        $STH = $this->_db->prepare("SELECT * 
            FROM slides
            WHERE slideID = :slideID;");

        $STH->execute($params[$i]);
    }

    $result = $STH->fetchAll(PDO::FETCH_ASSOC);

    return $result;       
}

谢谢。

最佳答案

最好只使用 IN 子句执行一条 SQL 语句

SELECT * FROM slides WHERE slideID IN (1,2,3,4,5, ...) 

因为较少的连接和访问数据库通常有利于提高性能。

因此只需在循环中构建该 SQL 字符串,然后将 Execute 移动到底部(在循环之外。)

关于php - 从 ID 数组获取数据库结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10606062/

相关文章:

c++ - select() 是否可以实现单套接字读/写超时?

php - 如何在 CodeIgniter base_url 中显示我的图像

php - Laravel 5 自定义 404 Controller

php - 如何使用表作为 'bridge' 进行 INNER JOIN 以获取另一个表中的另一个值?

php - 如何生成与给定模式匹配的随机唯一标识符

javascript - 当从 "multiple select"选择一个选项时,将其从其他选择中删除(并反转)

android - 如何在 Java 代码中选择 ListView Item?

php - 图像(Blob)在浏览器中仅显示一次

php - 避免两个用户同时发帖时ID混淆?

php - Laravel 5.6 withCount 和 where 语句