概述
[MySQL] 如何存储 array比较合适?
把数组变成字符串:比如$a=array{"12","23","34","45"};
$a="12,23,34,45"; 把这个存到数据库中就行了
读取时再用explode变成数组
数组大小不可定,有什么好的办法存储 以便将来查询?
---------------------------------------------------------------
把数组转换成字符串后再存入数据库
参考函数:
implode() ---把数组转换成字符串
explode() ---把字符串转换成数组
序列化以后存储.
---------------------------------------------------------------
对于一维数组可以简单的用
implode
explode
函数做数组——串的变换,但需注意分隔符要使用数组中不存在的字符
对于多维数组可以用序列化函数处理
serialize
unserialize --------------------- 作者:龙图科技 来源:CSDN 原文:https://blog.csdn.net/chakeshe/article/details/49708399?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!
数据库中没法存数组啊,反正我是没见过数组这个类型,你要存这个数组进去的话,先for循环遍历一下,用Stringbuffer追加成字符串,然后转成string存数据库吧
因为mysql数据类型不识别数组,
所以基本上都是都是转化为mysql是别的数据类型,
如果说php 用json_encode处理数组后就是字符串了。
直接入库就可以。
只不过出库后需要json_decode($array)。
对于一维数组,可以简单的使用implode函数将数组中的元素重组成字符串的形式储存到数据库中(如果数组中存在不能确定的特殊字符时,就要采用序列化的方法了,如下:)
[c-sharp] view plain copy
print?
- $arr=array('c1','c2','c3');
- $con1=implode('|',$arr);
- $sql=sprintf("insert into array(content) values('%s')",$con1);
- $result=mysql_query($sql);
$arr=array('c1','c2','c3'); $con1=implode('|',$arr); $sql=sprintf("insert into array(content) values('%s')",$con1); $result=mysql_query($sql);
如果是多维数组的话,则采用将数组序列化的形式,然后存入数据库
[c-sharp] view plain copy
print?
- $arr=array(array('a','b','c'),array('A','B','C'));
- $ser=serialize($arr);
- $sql=sprintf("insert into array(name,content) values('/$arr','%s')",$ser);
- $result=mysql_query($sql);
$arr=array(array('a','b','c'),array('A','B','C')); $ser=serialize($arr); $sql=sprintf("insert into array(name,content) values('/$arr','%s')",$ser); $result=mysql_query($sql);
取数据的时候则采用相应的逆过程就可以了
对于implode对应的就是explode
对于serialize对应的就是unserialize
则可以恢复为原来数组的形式
--------------------- 作者:wiesin 来源:CSDN 原文:https://blog.csdn.net/wiesin/article/details/6038579?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!
最后
以上就是眯眯眼酒窝为你收集整理的[MySQL] 如何存储 array比较合适?的全部内容,希望文章能够帮你解决[MySQL] 如何存储 array比较合适?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复