【发布时间】:2010-11-01 18:47:50
【问题描述】:
我创建了一个巨大的 JSON 对象并将其保存在我的数据库中。但是当我加载“字符串”并在 PHP 中回显它时,我无法访问 JQuery 中的 JSON 对象。如果我想将我的 JSON 对象保存在 MySQL 数据库中,我是否需要考虑一些事情(当我只是创建数组然后用“echo json_encode($arr);”回显它时,它工作正常,但我需要保存对象用于缓存)。
{"247":{"0":"这是一个 问题","1":"","2":"247","3":"0","answers":[["Answer1","960","1"],["Answer 2","962","0"],["答案 3","961","0"],["答案 4","963","0"]]},{"248":{"0":"这是一个 问题","1":"","2":"247","3":"0","answers":[["Answer1","960","1"],["Answer 2","962","0"],["答案 3","961","0"],["答案 4","963","0"]]}}
只是摘录
如果我只是回显这个 JSON 对象,一切正常,但如果我从数据库中加载相同的字符串并回显它,它就不起作用了。
更新 1:忘记告诉我正在使用带有 UTF8_general_ci 排序规则的 TEXT-Field
更新 2:可能需要更多代码:
function start() {
$(".start").click(function () {
$.post("load_script.php", { }, function(data){
alert(data[247][0]);
}, "json");
return false;
});
}
这会加载脚本并应提醒“这是一个问题”
<?php
require_once('connect.php');
$ergebnis = mysql_query("SELECT text FROM cache_table ORDER BY RAND() LIMIT 1");
while($row = mysql_fetch_object($ergebnis)) {
$output = $row->text;
}
echo $output;
?>
这是脚本,我使用 JSON-Object 加载数据库条目。
更新 3: 我想我解决了这个问题。一些中断潜入我的 JSON 对象,所以我在输出之前这样做:
$output = str_replace("\n", "", $output);
$output = str_replace("\r", "", $output);
$output = str_replace("\r\n", "", $output);
【问题讨论】:
-
你可以使用 firebug 来检查来自服务器的响应是否真的是你所期望的吗?
-
啊,很好的提示(我真的必须更频繁地使用 Firebug),我想我现在已经找出问题所在了。一些中断潜入我的对象,如果我这样做,在回显之前,它工作正常: $output = str_replace("\n", "", $output); $output = str_replace("\r", "", $output); $output = str_replace("\r\n", "", $output);回声$输出;
-
提示:$output = str_replace(array("\n","\r","\r\n"), "", $output)
标签: php jquery mysql database json