2022-04-28 06:19:12
要将 MySQL 查询结果通过 PHP 转换为 JSON 格式数组,需按照以下步骤实现:
核心步骤执行 MySQL 查询并获取结果使用 mysqli 或 PDO 扩展执行查询,将结果存储在变量中(如 $data)。每个结果行应包含 type、count 和 amount 属性。
构建目标 JSON 结构创建父数组,将查询结果数组赋值给 types 键,形成嵌套结构:
{ "types": [ {"type": "A", "count": 1, "amount": 100}, {"type": "B", "count": 2, "amount": 200} ]}转换为 JSON 字符串使用 json_encode() 函数将 PHP 数组转换为 JSON 格式,可选参数 JSON_PRETTY_PRINT 优化可读性。
数据库连接替换 localhost、username、password 和 database 为实际值。推荐使用 PDO 以提高安全性。
查询结果处理
fetch_assoc() 获取关联数组,通过 (object) 强制转换为对象。
若结果为空,$data 将是空数组,最终 JSON 中 types 键对应空列表。
JSON 格式化
JSON_PRETTY_PRINT 生成带缩进的 JSON(调试用),生产环境可省略以减少数据量。
确保 PHP 启用 JSON 扩展(默认已启用)。
特殊字符处理若数据包含非 ASCII 字符(如中文),需在 json_encode() 前设置编码:
mb_internal_encoding("UTF-8");$json_data = json_encode($parent, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);错误处理添加数据库连接和查询的异常处理,避免暴露敏感信息。
性能优化大数据量时,分页查询或流式输出(如 json_encode 分块处理)可减少内存占用。
安全性使用预处理语句(PDO)防止 SQL 注入,而非直接拼接 SQL。
通过以上方法,可高效将 MySQL 查询结果转换为结构化 JSON,适用于 API 开发或前端数据交互场景。