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

当您从PHP数据库查询中获取多条记录时,原始结果集通常以资源或对象形式存在,无法直接作为数组使用。以下是将多条查询结果转换为数组的常用技巧:
该函数可一次性将整个结果集提取为关联数组、索引数组或二者混合,适用于mysqli扩展且查询已执行完毕的情况。
1、执行SELECT语句并获取结果集资源。
2、调用mysqli_fetch_all($result, MYSQLI_ASSOC)获取关联数组形式的结果。
立即学习“PHP免费学习笔记(深入)”;
3、若需同时包含数字索引和关联键,使用MYSQLI_BOTH参数。
4、确保在调用前检查$result是否为有效资源,避免传递false或null导致警告。
PDO提供统一接口,支持多种返回格式,适合跨数据库兼容场景,且自动处理异常状态。
1、通过PDOStatement对象执行查询后,调用fetchAll(PDO::FETCH_ASSOC)获取关联数组。
2、使用PDO::FETCH_NUM获取纯数字索引数组。
3、指定PDO::FETCH_KEY_PAIR可将第一列为键、第二列为值生成键值对数组。
4、必须确保PDO预处理语句已成功执行,否则fetchAll()返回空数组。
适用于内存受限环境,逐行读取并构建数组,避免一次性加载全部结果集到内存。
1、初始化一个空数组用于存储结果。
2、使用while循环配合mysqli_fetch_assoc($result)逐行提取关联数据。
3、每次循环中将当前行追加至初始化数组,如$array[] = $row。
4、循环结束后必须显式释放结果集,调用mysqli_free_result($result)。
与mysqli_fetch_assoc类似,但基于PDO实现,支持fetch模式动态切换,灵活性更高。
1、执行查询并获得PDOStatement实例。
2、在while循环中调用$statement->fetch(PDO::FETCH_ASSOC)。
3、每次迭代将返回的单行数组追加进目标容器。
4、注意fetch()在无更多记录时返回false,不可直接用于数组合并操作。
适用于需要对每行结果统一处理后再组装的场景,借助回调函数增强可读性与复用性。
1、先获取结果集行数,初始化索引数组。
2、使用array_map传入匿名函数,内部调用mysqli_fetch_row($result)。
3、函数体中对每行进行字段映射或类型转换。
4、此方式要求结果集未被其他函数提前消耗,否则返回空数组。
以上就是php多条查询结果转数组_php数据库结果集转换技巧【教程】的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号