我正在使用类似于以下 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/