mysql序列化后存数组_由数据库某字段存数组引发的json_encode/serialize思考

导火索场景:

原来:mysql中 result表 img字段原存储字符串,内容为某图片链接;

现在:该字段需要存储多张图片链接,1-3个元素行程的数组;

建议一:根据具体场景构建多张表,通过主键外键形成关联。

优点:支持针对数组中某个字段的查询等;缺点:需要结合具体场景

建议二:序列化数组,php提供内置方法支持序列化与反序列化(serialize / unserialize)(开发完后发现仍存在另一种序列化方式json_encode / json_decode)

优点:方便实现;缺点:数组被看作整体,不支持对单个元素的操作;

不存在针对单个图片链接的查询等操作,选择建议二。

问题:接口postman img参数一栏值写 [xxx,xxx],序列化后入库,获取时反序列化预期返回数组的出参 [xxx,xxx],实则返回string类型的 "[xxx,xxx]"

排查过程:在php中gettype查看数据类型,入参实则为string类型,json_decode后才为array类型

原因:postman img参数一栏值写 [xxx,xxx],此时其实为string类型,json类型的数组。

后续一:对json类型的了解一直过于肤浅,乘此机会学习之,相关资料让我茅塞顿开,总结分享如下。

1. json可以理解为符合一定书写格式的字符串,实质仍是string;

2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值