[MySQL] 如何存储 array比较合适?

[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?

  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] view plain copy

print?

  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

则可以恢复为原来数组的形式

--------------------- 作者:wiesin 来源:CSDN 原文:https://blog.csdn.net/wiesin/article/details/6038579?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值