php - 使用 PHP 快速将 SQL 查询中的所有数据放入数组中

标签 php sql-server arrays

我正在使用类似于以下 PHP 代码的代码将查询中的所有数据放入一个数组中:

<?php

$results = array();

$q = odbc_exec("SELECT * FROM table");

while ($row = odbc_fetch_array($q)) {
    $results[] = $row;
}

?>

这工作正常,但当查询包含数千行时它会非常慢。

我的问题是,在 PHP 中有没有什么方法可以将所有数据转储到一个数组中,而不必逐条循环遍历每条记录?

注意:数据库使用 MS SQL Server。

最佳答案

您可以尝试使用 mssql 函数而不是 odbc,但不太可能产生很大的不同。

根据驱动程序的工作方式,结果集是结果数据本身的迭代器句柄。在某些情况下,直到 php 请求该行时,php 才真正获取数据。除非驱动程序中有可用的全部获取,否则循环遍历所有行通常是您唯一的选择。

如果您不需要所有列,您可以通过仅指定您实际需要的列来限制传输的数据。

关于php - 使用 PHP 快速将 SQL 查询中的所有数据放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14754752/

相关文章:

javascript - 我想在搜索功能运行后显示当前的搜索值

PHP使用windows账号连接SQL Server

java - Firebase 获取所有子值并将其存储在数组中

JavaScript 数组 2 维 for 循环

PHP/MySQL 从同一表中选择范围的前一天和后一天

php - MySQL IN 只删除单行,应该从变量中删除多个 - PHP

php - Ajax 发布到 php 文件不起作用

sql-server - 如何为sql server xml节点选择每个值

sql - 为什么允许我有两个同名索引?

c# - 如何在不知道提前指定数量的情况下创建对象数组