【问题标题】:php serialize function parsing errorphp序列化函数解析错误
【发布时间】:2012-04-25 14:28:55
【问题描述】:

我有这个数组

$x = array(
    1 => 16,
    2 => 8
);

$y = serialize($x);

我正在使用notorm,现在这个查询

$db->table()->update(array('config' => $y));

查询

update table set config = 'a:2:{i:1;i:16;i:2;i:8;}'

但在表中

a?:{i?;s?:"16";i?;s?:"8";}

现在的问题是序列化发生了什么

【问题讨论】:

  • 你在使用“奇怪”的字符集吗?
  • 你认为它的serialize()函数为什么?
  • var_dump($y) 显示什么?
  • var_dump($y) 也显示正确的序列化和回显查询
  • 我的意思是serialize 可以完美地处理您放入其中的任何内容。但是,这很可能是一个显示问题,或者数据库中的数据可能没有存储为 latin1 或 UTF-8。

标签: php notorm


【解决方案1】:

确保在您的数据库中,保存数据的字段设置为utf8_general_ci(首选)或latin1_general_ci的字符编码

【讨论】:

  • 我在另一个表中使用相同的所有东西并且一切都很好
猜你喜欢
  • 2011-04-04
  • 2012-04-20
  • 2011-04-11
  • 2014-02-19
  • 2018-12-26
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多