我有一个PHP数组,我想将其编码为JSON,以便稍后在JavaScript文件中传递它。
当我尝试时,JavaScript输出:
"SyntaxError:意外的令牌N"
然后我尝试在PHP中回显这个JSON字符串,它输出:
NULL
{
"cg": "3",
"cb": 0,
"cc": "0%",
"ci": "0",
"wm": 0,
"tl": "120"
}
为什么有NULL?这是我的代码:
$table = array(
"cg" => $v1,
"cb" => $v2,
"cc" => $v3,
"ci" => $v4,
"wm" => $v5,
"tl" => $v6
);
echo json_encode($table);
编辑以处理评论:
在数据库中,$v1是varchar(255),$v6是int(11)
检索值如下:
function fetchinfo($rowname,$tablename,$finder,$findervalue) {
if($finder == "1") $result = mysql_query("SELECT $rowname FROM $tablename");
else $result = mysql_query("SELECT $rowname FROM $tablename WHERE `$finder`='$findervalue'");
$row = mysql_fetch_assoc($result);
return $row[$rowname];
}
然而,情况并非总是如此,有时值可以是一个简单的字符串:$v6="120";
假设变量的值如上面的json数据所示,我无法重现错误-似乎可以。
$v1=3;
$v2=0;
$v3='%0';
$v4=0;
$v5=0;
$v6=120;
$table = array(
"cg" => $v1,
"cb" => $v2,
"cc" => $v3,
"ci" => $v4,
"wm" => $v5,
"tl" => $v6
);
echo json_encode( $table );
/*
{"cg":3,"cb":0,"cc":"%0","ci":0,"wm":0,"tl":120}
*/