【发布时间】:2013-03-10 13:17:17
【问题描述】:
我有一个数组,我将其编码为 json,并将其保存到数据库中。数组看起来像
$myarray = array(
'test'=>array('key1'=>'1',
'key2'=>'2',
'key3'=>'3'),
'test2' =>array('key4'=>'1',
'key5'=>'<a href="myclass"></a>'
)
);
json_encode($myarray);
我的数据库中保存的 json 看起来像
{
"test": {"key1":"1",
"key2":"2",
"key3":"3"
},
"test2": {"key4":"1",
"key5":"<a href ="myclass"></a>"
}
}
MYSQL 保存
$sql = "UPDATE my_table SET params= '".json_encode($param )."' WHERE id ='".$key."'";
当我从数据库中检索 json 字符串并尝试使用 json_decode($json, true); 重建数组时输出 null
【问题讨论】:
-
如果没有正确的 's,您的 php 复制和粘贴似乎在语法上被破坏了。
-
var_dump($json);以确保它确实是您要解码的字符串 -
我已经在这 2 个小时上了,现在我的神经已经松了
-
var_dump json 从数据库中取出后
-
这不是您编辑后的有效 json。如果您在解码之前使用
stripslashes,请不要这样做。如果不是问题,请使用 Adminer 或 phpMyAdmin 或任何其他数据库管理工具来验证该字段是否包含正确的转义引号,这会导致插入数据库的方法错误或服务器配置错误