导火索场景:
原来: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.