使用 JSON 序列化将二维数组存入数据库:先用 json_encode() 转为字符串,再通过 PDO 或 MySQLi 预处理插入 JSON/TEXT 字段,读取时用 json_decode($json_str, true) 还原为关联数组。

如果您需要将 PHP 中的二维数组保存到数据库中,直接存储原始数组结构不可行,必须先将其转换为数据库可接受的字符串格式。JSON 序列化是最常用且兼容性良好的方式,它能完整保留数组的键名、嵌套结构与数据类型。以下是使用 JSON 序列化将二维数组存入 MySQL 数据库的具体操作步骤:
MySQL 表中需设置一个支持长文本的字段来存储 JSON 字符串,推荐使用 JSON 类型(MySQL 5.7+) 或 TEXT 类型(兼容所有版本)。若选用 JSON 类型,数据库会自动校验格式合法性;若用 TEXT,则需在 PHP 层确保序列化正确。
1、执行 SQL 创建表语句:CREATE TABLE data_store (id INT AUTO_INCREMENT PRIMARY KEY, array_data JSON);
2、若使用旧版 MySQL,改用:CREATE TABLE data_store (id INT AUTO_INCREMENT PRIMARY KEY, array_data TEXT);
使用 json_encode() 将二维数组转换为标准 JSON 字符串。该函数会递归处理嵌套结构,并转义特殊字符,确保入库安全。注意检查返回值是否为 false,以排除编码失败(如含不可序列化对象或非 UTF-8 编码字符串)。
1、定义示例二维数组:$arr = [['name' => '张三', 'age' => 25], ['name' => '李四', 'age' => 30]];
2、执行序列化:$json_str = json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
3、验证序列化结果:if ($json_str === false) { die('JSON 编码失败:' . json_last
_error_msg()); }
PDO 预处理语句可防止 SQL 注入,同时安全传递 JSON 字符串。绑定参数时使用 PDO::PARAM_STR 类型,确保字符串长度不受限(尤其当 TEXT 或 JSON 字段容量较大时)。
1、建立 PDO 连接并设置错误模式:$pdo = new PDO($dsn, $user, $pass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
2、准备插入语句:$stmt = $pdo->prepare("INSERT INTO data_store (array_data) VALUES (?)");
3、执行绑定与插入:$stmt->bindValue(1, $json_str, PDO::PARAM_STR); $stmt->execute();
MySQLi 同样支持预处理,适用于未启用 PDO 的环境。需显式调用 bind_param() 指定参数类型为字符串("s"),并确保传入的是已编码完成的 JSON 字符串。
1、初始化 MySQLi 连接:$mysqli = new mysqli($host, $user, $pass, $db);
2、准备语句:$stmt = $mysqli->prepare("INSERT INTO data_store (array_data) VALUES (?)");
3、绑定并执行:$stmt->bind_param("s", $json_str); $stmt->execute();
从数据库取出 JSON 字符串后,必须使用 json_decode() 转回 PHP 数组。第二个参数设为 true 可确保返回关联数组而非对象,与原始二维数组结构一致。
1、查询记录:$result = $pdo->query("SELECT array_data FROM data_store WHERE id = 1");
2、获取 JSON 字符串:$row = $result->fetch(PDO::FETCH_ASSOC); $json_str = $row['array_data'];
3、还原为二维数组:$arr = json_decode($json_str, true);
以上就是php数据库怎么存入二维数组_php二维数组存库json序列化入库法【教程】的详细内容,更多请关注其它相关文章!
# php
# js
# json
# 编码
# 序列化
# mysql
# 转数
# 营销推广ppt模板素材视频
# 琼中县网站推广
# 推荐使用
# 设为
# 的是
# 弄成
# 转换为
# 面向对象
# 绑定
# 递归
# 电影网站建设工程
# app网站建设费用低
# 健身房推广营销文案简短
# 张掖网站建设厂家
# 张掖网站排名优化
# 江苏句容市免费网站推广
# 高端网站建设路成都
# 学校微网站建设
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
手机坏了微信聊天记录怎么导出来 新手机恢复聊天记录技巧
《狐友》联系客服方法
《磁力猫》最好用的磁官网
J*aScript二进制处理_ArrayBuffer与Blob
CSS绝对定位与溢出控制:实现背景元素局部显示不触发滚动条
《猎聘》筛选猎头岗位方法
《气泡星球》兑换码礼包大全
阿里云共享相册入口在哪
PHP多语言网站的实现:会话管理与翻译函数优化教程
J*aScript装饰器_元编程实战
《oppo商城》维修服务位置
Cassandra中复合主键、二级索引与ORDER BY排序的限制与解决方案
iPhone14无法连接蓝牙设备如何解决
抖音网页版官方链接 抖音网页版官网链接入口
荣耀盒子应用管理技巧
解决Pandas DataFrame高度碎片化警告:高效创建多列的策略
惠普电脑BIOS界面看不懂怎么办_HP电脑BIOS功能选项解读与设置
C++如何使用CMake构建项目_C++ CMakeLists.txt编写入门教程
如何通过settings.json个性化您的VS Code体验
无人机考证官网 中国民航无人机考证官网登录入口
12306售票时间最新规定 | 网上订票和车站窗口时间一样吗
《东方航空》添加乘机人方法
WooCommerce 新客户订单自动添加管理员备注教程
创建快捷方式启动系统保护
风车动漫官网首页入口登录 风车动漫在线观看正版地址
睡觉时心跳快是什么原因 夜间心悸如何应对
漫蛙漫画直连入口 _ manwa官方备用入口实时检测
mysql如何配置从库只读_mysql从库只读设置方法
使用VS Code作为你的个人知识管理系统
如何测试您的网站全球打开速度-网站海外测速工
C++如何将字符串转换为大写或小写_C++ transform函数的使用技巧
在React中正确处理HTML input type="number"的数值类型
小红书如何引流到私信?引流到私信有用吗?
LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用
美发店速赢秘籍
excel怎么计算平均值 excel平均函数*ERAGE使用教学
PHP魔术方法__set与__isset:设计考量、性能权衡与静态分析的视角
《密马》发布账号方法
sublime如何配置PHP开发环境_在sublime中运行与调试PHP代码
精通VS Code多光标编辑以实现闪电般快速的修改
ExcelSCAN与LAMBDA如何创建自定义移动平均函数_SCAN实现任意窗口期移动平均计算
传统曲艺莲花落的表演形式是
c++如何链接Boost库_c++准标准库的集成与使用
高效调试PHP大型嵌套数组:JSON序列化与可视化工具实践
铁路12306买票怎么选双人铺 铁路12306卧铺分配规则说明
《伊瑟》凶影追缉库卢鲁boss攻略
基于 Flink 和 Kafka 实现高效流处理:连续查询与时间窗口
悟空浏览器网页版在线工具 悟空浏览器网页版在线平台入口
BunnyStream TUS视频上传指南:解决401认证错误与参数配置
51漫画网实时入口 51漫画网页版官方免费漫画入口
2025-12-19
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。