【发布时间】:2012-06-18 13:15:44
【问题描述】:
好的,首先,感谢您阅读我的问题,我会尝试添加尽可能多的信息。我目前正在为 Garrysmod 游戏类型制作排行榜,我从游戏模式的编码人员那里获得了一个 API 密钥,使用该 API 密钥我可以使用 STEAM_ID 提取 JSON 编码数组
示例: http://www.revoltgaming.com/api/?key=SENCORED_API_KEY&action=ajack_all&steamid=STEAM_0:0:5898349
如果我使用下面的代码一切正常:
$usr_url_everything = "http://www.revoltgaming.com/api/?key=114d788c3e40e91842f945f19c978e66&action=ajack_all&steamid=" . $_SESSION['STEAMID'];
$json_encoded = file_get_contents($usr_url_everything);
$json_decoded = json_decode($json_encoded, true);
但我所做的是,当用户第一次加入时,我会提取他的 JSON 字符串并将其保存在 MySQL 数据库中:
$usr_url_everything = "http://www.revoltgaming.com/api/?key=114d788c3e40e91842f945f19c978e66&action=ajack_all&steamid=" . $_SESSION['STEAMID'];
$json_encoded = file_get_contents($usr_url_everything);
$query = "INSERT INTO vm_leaderboard (`txtUser`, `txtJson`) VALUES ('" . $_SESSION['STEAM64'] . "', '" . $json_encoded . "')";
但是从我尝试DECODE从数据库中提取的json字符串的那一刻起,它就不起作用了,它返回NULL。我保存在数据库中的 json 字符串与我直接从 API 页面获取的字符串相同。
以下是从数据库中提取的字符串: http://www.ishots-cave.com/revolt_/lb_applejack.php
【问题讨论】:
-
是否为数据库正确转义了 JSON 字符串?
-
只需回显您从数据库中获得的信息,您可能会看到问题的答案。
-
@Zagor23 可以在此处找到回声:ishots-cave.com/revolt_/lb_applejack.php(每行一次),与我从revoltgaming.com/api 中提取的回声相同
-
@Waltzy
The string is saved as 'TEXT BLOB' in the database $leaderboard = new Database; $query = "SELECT * FROM vm_leaderboard"; $leaderboard->query($query); while ($leaderboard->nextRecord()) { // Decode his json string $json_encoded = $leaderboard->Record['txtJson']; echo $json_encoded; echo json_decode($json_encoded, true, 2); -
@AndriesVerbanck - 添加我的评论作为要接受的答案。不客气!