gpt4 book ai didi

php - 使用 Json_encode 数据或序列化数据并存储在数据库中哪个更有效?

转载 作者:行者123 更新时间:2023-12-03 09:26:11 25 4
gpt4 key购买 nike

刚刚在 php.ini 中遇到了serialize()。许多数据库以序列化形式存储数据,所以很想知道 json 或序列化哪个更有用,为什么?

 Json Data->["Math","Language","Science","History"]
serialized Data->a:4:{i:0;s:4:"Math";i:1;s:8:"Language";i:2;s:7:"Science";i:3;s:7:"History";}

最佳答案

Serialize() 是一种在文本字符串中存储数据的 native PHP 方法。它甚至可以存储对象。它对对象有特殊的表示法。 JSON 是 JavaScript 的对象表示法。基本上,同样的事情。但它们用于不同的领域。

JSON 通常用于在线通信 - 向/从 AJAX 脚本、众多 API 等发送数据。它看起来比 XML 更轻且可读,因此它与 XML 竞争最常用的 API 数据传输标准。它也广泛用于配置文件中,例如 Composter - 其中可读性是首要要求之一。视觉可读性和简单的结构使 JSON 成为不同平台和编程语言之间通信的最佳方式。最后这句话很重要。

PHP 序列化用于在 PHP 中保存数据在 PHP 中恢复数据的情况。比如说,您可以将数组或 $user 对象保存到 PHP session 中,然后将它们恢复。或者将多维数组存储在 MySQL 字段中,然后将其恢复为 $array 变量中的样子。在大多数情况下,序列化数据并不比 JSON 更短/更轻,并且通常不会占用更少的空间 - 但它会使其失去可读性。但是 PHP 有一些非常强大的技巧 - 它保留数据类型、类名称、可见性选项等。另请参阅 __sleep()__wakeup() 魔术类方法允许您即时保存对象并创建特殊的构造函数以再次即时恢复它们。

在您的特定情况下,如果您使用 PHP 将数据存储在 MySQL 数据库中,然后将其读回 PHP - 那么 PHP 序列化将是最好的使用方法。除非您想用其他语言访问此数据,或手动/可视化编辑。

关于php - 使用 Json_encode 数据或序列化数据并存储在数据库中哪个更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21360065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com