PHP中需根据数据库扩展将查询结果资源转为数组:mysqli用mysqli_fetch_all()等函数;PDO用fetchAll()并指定FETCH常量;废弃的mysql扩展不可用于PHP 7.0+;单行结果可统一处理;JSON字段需额外json_decode()解析。
如果在PHP中执行数据库查询后得到的是一个资源(resource)或对象(如mysqli_result、PDOStatement),而您需要将其转换为普通数组以便后续处理,则需根据所使用的数据库扩展选择对应方法。以下是几种常见扩展下的转换方式:
mysqli扩展提供多种函数可将查询结果集转换为关联数组、索引数组或二者混合的数组。最常用的是mysqli_fetch_assoc()、mysqli_fetch_array()和mysqli_fetch_all()。
1、使用mysqli_fetch_all()一次性获取全部结果为二维数组,参数MYSQLI_ASSOC返回关联数组,MYSQLI_NUM返回索引数组,不传参默认为二者混合。
2、若需逐行处理,可用mysqli_fetch_assoc()循环读取每行为关联数组。
3、确保在调用前已成功执行mysqli_query()并获得有效结果集,否则mysqli_fetch_all()会返回NULL。
PDO支持通过fetch()、fetchAll()等方法控制返回格式,默认情况下fetch()返回关联与索引并存的数组,可通过设置PDO::FETCH_*常量调整输出类型。
1、执行查询后调用$stmt->fetchAll(PDO::FETCH_ASSOC)获取全量关联数组。
2、若仅需一行,使用$stmt->fetch(PDO::FETCH_NUM)获取索引数组。
3、必须在prepare()和execute()成功后调用fetchAll(),且PDO需设置错误模式为异常模式(PDO::ERRMODE_EXCEPTION)便于捕获错误。
mysql_*系列函数自PHP 7.0起已被完全移除,但部分遗留代码仍可能出现。该扩展中mysql_fetch_array()是主要转换函数,支持指定返回类型。
1、mysql_query()返回结果资源后,用mysql_fetch_array($result, MYSQL_ASSOC)获取关联数组。
2、使用MYSQL_NUM可得纯数字索引数组,MYSQL_BOTH为默认值(同时含数字与字符串键)。
3、此扩展不可用于PHP 7.0及以上版本,迁移时必须改用mysqli或PDO。
当查询只返回单条记录(如SELECT COUNT(*)或LIMIT 1),可统一用当前扩展的“单行取值”函数配合array_values()或强制类型转换确保结构一致。
1、对mysqli_result对象,先调用mysqli_fetch_row()再用array_values()标准化键名。
2、对PDOStatement,使用fetch(PDO::FETCH_NUM)后直接赋值给变量。
3、注意NULL值在转换后仍为NULL,不会自动转为空字符串或0。
若数据库字段存储JSON格式字符串(如MySQL的JSON类型或TEXT字段),即使主结果已是PHP数组,该字段本身仍为字符串,需额外解码。
1、对mysqli或PDO取出的含JSON字段的行,使用json_decode($row['json_field'], true)转为关联数组。
2、检查json_last_error()返回值是否为JSON_ERROR_NONE,避免因非法JSON导致返回NULL。
3、若字段可能为空或
非JSON字符串,应先is_string()和!empty()判断再解码。
# mysql
# php
# js
# json
# NULL
# Resource
# 常量
# 关联数组
# count
# select
# mysqli
# pdo
# 字符串
# 强制类型转换
# 循环
# 类型转换
# 对象
# 数据库
# 的是
# 转换为
# 查询结果
# 时将
# 多维
# 仍为
# 已被
# 将其
# 已是
# 几种
相关文章:
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
建站主机SSH密钥生成步骤及常见问题解答?
如何高效利用200m空间完成建站?
如何用PHP快速搭建CMS系统?
h5网站制作工具有哪些,h5页面制作工具有哪些?
php json中文编码为null的解决办法
简单实现Android验证码
智能起名网站制作软件有哪些,制作logo的软件?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
建站之星展会模版如何一键下载生成?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
北京企业网站设计制作公司,北京铁路集团官方网站?
已有域名和空间,如何快速搭建网站?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
如何配置IIS站点权限与局域网访问?
小型网站建站如何选择虚拟主机?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
专业商城网站制作公司有哪些,pi商城官网是哪个?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
建站之星备案流程有哪些注意事项?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
如何彻底卸载建站之星软件?
香港服务器租用每月最低只需15元?
表情包在线制作网站免费,表情包怎么弄?
定制建站是什么?如何实现个性化需求?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
宝塔Windows建站如何避免显示默认IIS页面?
网站网页制作专业公司,怎样制作自己的网页?
如何用VPS主机快速搭建个人网站?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
Bpmn 2.0的XML文件怎么画流程图
建站之星价格显示格式升级,你的预算足够吗?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何快速完成中国万网建站详细流程?
建站之星备案是否影响网站上线时间?
如何快速搭建高效WAP手机网站吸引移动用户?
如何在腾讯云服务器快速搭建个人网站?
如何用腾讯建站主机快速创建免费网站?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何在服务器上配置二级域名建站?
用v-html解决Vue.js渲染中html标签不被解析的问题
实现虚拟支付需哪些建站技术支撑?
建站之星会员如何解锁更多建站功能?
*请认真填写需求信息,我们会在24小时内与您取得联系。