php - 将整个 mysql 结果集转储到数组中的最有效方法?

标签 php mysql set

我试图将整个结果集放入一个数组中,如下所示:

while($myres[]=$result->fetch_array(MYSQLI_ASSOC));

这工作正常,但如果我的结果中有 5 行返回,则数组有 6 个索引,最后一个索引为空。所以看来我的数组总是有一个索引太大。

我可以使用 num_rows 来循环结果,但这需要我设置自己的计数器并递增它,我喜欢上面一行的速记效率,但如何阻止它用空集填充最后一个索引。

这是我使用 fetch_all 的替代方案,我发现它需要一个特殊的驱动程序,并非所有 php 服务器都安装了该驱动程序。

最佳答案

我只会使用多行

$myres = array();
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
    $myres[] = $row;

但是,如果您必须在没有额外的数组赋值行的情况下拥有它

while ($row = $result->fetch_array(MYSQLI_ASSOC) && $myres[] = $row) {

但这或多或少是相同的。

关于php - 将整个 mysql 结果集转储到数组中的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17307452/

相关文章:

php - 使用 Php 和 Mysql 插入数据时出错

c++ - 从一组集合中找到所有不相交集合的算法是什么?

c# - C# 3.0 中属性 {get, set} 方法的用途是什么

python - 使用过多内存的大量 Python 整数集

php - 如何使用 Zend_Db 添加多行?

PHP-根据mysql_num_rows回显图片数量

PHP ssh2_exec() 不执行 iptables 命令

PHP,MySQL 用户注册,带有电子邮件验证和登录系统(历史),插入日期为最后一次

PHP Paypal API : How to Capture Authorized Payment Partially?

mysql - 如何使用 MySQL InnoDB 实现 auto_increment 复合主键?