登录
首页 >  文章 >  php教程

PHP查询结果转数组方法解析

时间:2025-12-12 21:09:35 336浏览 收藏

推广推荐
免费电影APP ➜
支持 PC / 移动端,安全直达

大家好,今天本人给大家带来文章《PHP查询结果转数组技巧详解》,文中内容主要涉及到,如果你对文章方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

PHP数据库查询结果转数组有五种常用方法:一、mysqli_fetch_all()一次性提取;二、PDO::fetchAll()支持多格式;三、mysqli_fetch_assoc()循环逐行读取;四、PDO::fetch()配合while循环;五、array_map配合mysqli_fetch_row处理每行。

php多条查询结果转数组_php数据库结果集转换技巧【教程】

当您从PHP数据库查询中获取多条记录时,原始结果集通常以资源或对象形式存在,无法直接作为数组使用。以下是将多条查询结果转换为数组的常用技巧:

一、使用mysqli_fetch_all()函数

该函数可一次性将整个结果集提取为关联数组、索引数组或二者混合,适用于mysqli扩展且查询已执行完毕的情况。

1、执行SELECT语句并获取结果集资源。

2、调用mysqli_fetch_all($result, MYSQLI_ASSOC)获取关联数组形式的结果。

3、若需同时包含数字索引和关联键,使用MYSQLI_BOTH参数。

4、确保在调用前检查$result是否为有效资源,避免传递false或null导致警告

二、使用PDO::fetchAll()方法

PDO提供统一接口,支持多种返回格式,适合跨数据库兼容场景,且自动处理异常状态。

1、通过PDOStatement对象执行查询后,调用fetchAll(PDO::FETCH_ASSOC)获取关联数组。

2、使用PDO::FETCH_NUM获取纯数字索引数组。

3、指定PDO::FETCH_KEY_PAIR可将第一列为键、第二列为值生成键值对数组。

4、必须确保PDO预处理语句已成功执行,否则fetchAll()返回空数组

三、循环调用mysqli_fetch_assoc()

适用于内存受限环境,逐行读取并构建数组,避免一次性加载全部结果集到内存。

1、初始化一个空数组用于存储结果。

2、使用while循环配合mysqli_fetch_assoc($result)逐行提取关联数据。

3、每次循环中将当前行追加至初始化数组,如$array[] = $row。

4、循环结束后必须显式释放结果集,调用mysqli_free_result($result)

四、使用PDO::fetch()配合while循环

与mysqli_fetch_assoc类似,但基于PDO实现,支持fetch模式动态切换,灵活性更高。

1、执行查询并获得PDOStatement实例。

2、在while循环中调用$statement->fetch(PDO::FETCH_ASSOC)。

3、每次迭代将返回的单行数组追加进目标容器。

4、注意fetch()在无更多记录时返回false,不可直接用于数组合并操作

五、利用array_map配合mysqli_fetch_row

适用于需要对每行结果统一处理后再组装的场景,借助回调函数增强可读性与复用性。

1、先获取结果集行数,初始化索引数组。

2、使用array_map传入匿名函数,内部调用mysqli_fetch_row($result)。

3、函数体中对每行进行字段映射或类型转换。

4、此方式要求结果集未被其他函数提前消耗,否则返回空数组

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《PHP查询结果转数组方法解析》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>