Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在MySql数据库中存储对象?_Php_Mysql_Codeigniter - Fatal编程技术网

Php 如何在MySql数据库中存储对象?

Php 如何在MySql数据库中存储对象?,php,mysql,codeigniter,Php,Mysql,Codeigniter,我可以在MySql数据库中存储一些对象吗?因为我正在通过MySql制作一个在线或离线支持系统。因此,将所有数据存储为对象非常重要。除了目标,你有更好的主意吗 这是关于对象的Damo示例 $data = array( 'user_id' => 1, //$userId, 'payment_id' => $payment_id, 'hash' => $hash,

我可以在MySql数据库中存储一些对象吗?因为我正在通过MySql制作一个在线或离线支持系统。因此,将所有数据存储为对象非常重要。除了目标,你有更好的主意吗

这是关于对象的Damo示例

$data = array(
                'user_id' => 1, //$userId,
                'payment_id' => $payment_id,
                'hash' => $hash,
                'conversation' => $object,
                'amount' => $paypal->getTransactions()[0]->getAmount()->getTotal(),
                'description' => $paypal->getTransactions()[0]->getDescription()
            );
$this->db->insert($this->table, $data);

必须将对象转换为字符串才能保存完整对象。 为此,请在PHP中使用serialize:


然后您将能够取消序列化并取回您的对象。

MySql在MySql 5.7中添加了许多功能。现在你可以用很多方法来做

与大数据一样,Oracle现在正在MySQL中集成

MySql通过MySql和Hadoop开启了新的大数据洞察

解决方案1:您可以使用MySQL作为文档存储。可以将许多对象存储为JSON。这是强烈推荐和可扩展的

MySQL Document Store=MySQL+NoSql

X开发API将有助于通过X上的SQL和CRUD操作生成JSON 协议此外,还可以保持X会话

这将是最好的透明数据发送和共享聊天应用程序或组应用程序

解决方案2:MySql Sysbench:只读是另一个很好的解决方案。这将是非常快速和可扩展的,使小组聊天应用程序

解决方案3:使用MySql 5.7:InnoDB、NoSql和Memcached API,后者将直接与存储引擎InnoDB交互。它比MySql 5.6快6倍

目前,FaceBook正在使用这项技术。因为它非常快

有关详细信息:


你到底想要什么。表中有多少列?您必须在数据库中有每个键,然后根据该键进行插入。类似INSERT INTO someKey1、someKey2值“{$somevalue->someKey1}”和“{$somevalue->someKey2}”的查询;该对象将具有与键匹配的属性。无论如何,您可以在之前序列化这些对象insert@AlexSlipknot你可以序列化它,但我不会;它打破了标准化规则,并将数据与应用程序绑定;序列化的PHP数据对于读取数据库的其他任何东西都是无用的。简言之,这通常是一个糟糕的想法。@CD001好吧,若对象很简单,你们可以。如果没有-你可以用_sleep实现自己的序列化一般来说,这是个坏主意。你能解释一下原因吗?假设你想从数据库中获取具有属性x的对象-你必须提取所有数据并取消对象的序列化,以确定哪个对象具有该属性;您的数据不再是标准化的。您应该具有映射对象属性的索引列,然后您可以检索特定数据,或者在将来轻松更新特定属性。此外,如果您将应用程序移植到Ruby或其他任何地方,序列化的PHP数据可能是无用的。在某些上下文中,序列化可能是有用的,当它是您永远不会排序的数据时,只是一组数据。但是如果你需要选择具体的条目,你确实不应该使用它!创建一个表对话,一个条目=一条消息。创建您的列,如用户名、id、消息、ip等。解决方案1将是最好的。我之所以找到这篇文章,是因为我在寻找MySQL中JSON存储的相关信息。优点之一是可以使用虚拟列对JSON中包含的数据进行索引。这比序列化要好得多。序列化不应用于将数据转换为可存储格式。