[MySQL]如何存储array⽐较合适?
[MySQL] 如何存储 array⽐较合适?
把数组变成字符串:⽐如$a=array{"12","23","34","45"};
$a="12,23,34,45"; 把这个存到数据库中就⾏了
读取时再⽤explode变成数组
数据库中没法存数组啊,反正我是没见过数组这个类型,你要存这个数组进去的话,先遍历⼀下,⽤Stringbuffer追加成字符串,然后转成string存数据库吧
因为mysql数据类型不识别数组,
所以基本上都是都是转化为mysql是别的数据类型,
如果说php ⽤json_encode处理数组后就是字符串了。
直接⼊库就可以。
只不过出库后需要json_decode($array)。
对于⼀维数组,可以简单的使⽤implode函数将数组中的元素重组成字符串的形式储存到数据库中(如果数组中存在不能确定的特殊字符时,就要采⽤序列化的⽅法了,如下:)
[c-sharp]
1. $arr=array('c1','c2','c3');
2. $con1=implode('|',$arr);
3. $sql=sprintf("insert into array(content) values('%s')",$con1);
4. $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]
1. $arr=array(array('a','b','c'),array('A','B','C'));
2. $ser=serialize($arr);
3. $sql=sprintf("insert into array(name,content) values('/$arr','%s')",$ser);
4. $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
mysql存储文档
则可以恢复为原来数组的形式

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。