为什么在mysql中存储这样的数据a:6:{s:5:“title”; s:43:}

时间:2011-09-02 06:30:45

标签: php mysql

在mysql数据库中,我找到了一些数据存储,如下所示:

  

一个:6:{S:5: “标题”; S:43: “fgjfh”; S:8: “省”; S:6: “重庆”; S:4: “城市”; S: 9: “大渡口”; S:8: “位置”; S:6: “fhfghf”; S:9: “开始时间”; S:11:“09-02   12:00“; s:7:”endtime“; s:11:”09-02 16:00“;}

1 个答案:

答案 0 :(得分:6)

这是一个PHP serialized数组。您在将数组放入数据库之前对其进行了序列化。

如果要更改代码,请在代码中查找serialize($value)次来电。

更新

可能你的存储数据(实际上是 hash )有动态字段,对于创建者来说太难了,或者他/她不在乎/懒得这么做/决定是不重要或仅仅不是用例。

但您应该考虑重新考虑您的架构并创建一个正确的(3NF)normalization。在这种情况下,您将至少有一个表格喜欢这个:

CREATE TABLE data (
  id          INTEGER PRIMARY KEY, -- or SERIAL if your database supports it
  title       VARCHAR,             -- or TEXT
  province_id INTEGER NOT NULL,    -- or REFERENCES the provinces table
  city_id     INTEGER NOT NULL,    -- or REFERENCES the cities table
  location    VARCHAR,             -- I do not really know what is this field
  starttime   TIMESTAMP,
  endtime     TIMESTAMP
);

当然,您还需要provincescities表格。使用此模式,如果需要,可以使用数据库指令处理存储的数据。