php数据库数组反序列化取指定内容

php数据库数组反序列化取指定内容,第1张

$str = 'a:2:{i:0;b:0;s:8:"bankinfo";a:1:{i:1;a:2{s:6:"bankid";i:1;s:7:"cardnum";s:4:"adda";}}}';

$res = unserialize($str);

echo $res['bankinfo'][1]['cardnum'];

这个数组整个结构是

Array ( 

    [0] => false

    [bankinfo] => Array (

         [1] => Array ( 

             [bankid] => 1

             [cardnum] => adda 

         )

     )

)

1) 空间的比较

serialize在编码后大概是json的15倍。

原因:

serialize后字符串包含了子串的长度,这可能是速度方面的优化,但是测试结果不尽人意。

serialize有更加详细的类型区分,而json只有四种类型,并且是以简单的符号表示。

2)速度的比较

在较小数据的情况下, serialize比json快数量级。

在大数据量的情况下,json比serialize稍微差一点

3)处理对象

json无法处理对象方法等数据。

4)使用范围

在前后端交互一般都使用JSON,另外,目前JSON只支持UTF-8编码的数据。

序列化使用serialize,特别是对象的存储。这是其存在的意义。

与对象无关的数据存储可以使用json,如包含大量数字的数组等。

对象持久化(Persistence)

对象持久化就是将对象存储在可持久保存的存储介质上,例如主流的关系数据库中。在实际应用中,需要将业务数据以对象的方式保存在数据库中,就需要应用到相应的对象持久化框架,如现在广为认知的Hibernate。而如果查阅对象持久化的历史,你会发现早在1970年就已经开始有称之为面向对象数据库OODBMS。通常这些面向对象的数据库和特定的一种语言绑定。对象持久化的重点在于如何将业务数据对象存储在持久化介质上,并同时提供查询修改的手段。

数据序列化(Serialization)

数据序列化就是将对象或者数据结构转化成特定的格式,使其可在网络中传输,或者可存储在内存或者文件中。反序列化则是相反的 *** 作,将对象从序列化数据中还原出来。而对象序列化后的数据格式可以是二进制,可以是XML,也可以是JSON等任何格式。对象/数据序列化的重点在于数据的交换和传输,例如在远程调用技术(如EJB,XML-RPC, Web Service),或者在GUI控件开发(JavaBean)等等。

总结一下,对象持久化和对象序列化是两个完全不同的应用场景,尽管你也可以说将一个对象序列化后存储在数据库中,但是你也不能说是对象持久化。

需要。在使用mysqljson软件时,在进行插入 *** 作时,为了数据的准确性时需要序列化的。MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。

把数组转换成字符串后再存入数据库

参考函数:

implode() ---把数组转换成字符串

explode() ---把字符串转换成数组

手册里有详细说明

序列化以后存储

对于一维数组可以简单的用

implode

explode

函数做数组——串的变换,但需注意分隔符要使用数组中不存在的字符

对于多维数组可以用序列化函数处理

serialize

unserialize

函数的用法手册中都有

以上就是关于php数据库数组反序列化取指定内容全部的内容,包括:php数据库数组反序列化取指定内容、序列化和数据库存储的区别、什么是对象持久化,与数据序列化有何联系等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9291326.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存