我用PHP从我们的数据库(用GLua输入)中提取信息,然后使用json_decode将其更改为要使用的数组,但它返回NULL,而其他的工作正在运行?
// Get the RapSheet info from 'character_data_store'
$rap = mysql_query("SELECT * FROM `character_data_store` WHERE `character_id` = '$srp_uid' AND `key`='RapSheet'");
while($rapsheet=mysql_fetch_assoc($rap)){
$raps = $rapsheet['value'];
};
然后我用
// Deal with the rapsheet JSON
echo $raps;
$raps = json_decode($rapsheet, true);
echo var_dump($raps, TRUE);
回声是为了检查它是否正常工作,尽管var_dump返回
,但是回声时信息被成功拉出NULL bool(true)
数据库内容:
[{"ArrestedBy":"James Scott","Date":1483732483,"Duration":60,"LeaveReason":"Jail time served.","ArrestReason":"test"}]
任何帮助将不胜感激!
在尝试Darren的回复之后:
我试过
$rap = mysql_query("SELECT * FROM `character_data_store` WHERE `character_id` = '$srp_uid' AND `key`='RapSheet'");
$raps = array();
while($rapsheet=mysql_fetch_assoc($rap)){
$raps[] = $rapsheet['value'];
};
// encode
$rap = json_encode($raps, TRUE);
echo $rap;
然后又回来了:
[“[{\”ArrestedBy \“:\”James Scott \“,\”Date \“:1483732483,\”Duration \“:60,\”LeaveReason \“:\”Jail time served。“ ,\ “ArrestReason \”:\ “测试\”}]“] 所以我试过
echo $rap['ArrestedBy'];
然后它返回
[
答案 0 :(得分:1)
您正在尝试访问不在适当范围内的变量。 $rapsheet
只能在while() {...
循环中访问,因为它将是当前的数据行。您要做的是将$raps
创建为数组并在其中插入行。从那里你可以随意json_decode()
。{根据您获得的行数,您可能需要遍历$raps
并解码每个数组元素。
$raps = array();
while($rapsheet=mysql_fetch_assoc($rap)){
$raps[] = $rapsheet['value'];
};
// encode
$rap = json_encode($raps, TRUE);