我有一些PHP脚本,这是从其他网站获得json数据。它通过GET方法(email)检索URL变量,并在此变量的基础上从用户数据库获得唯一电影代码的结果。然后将这些代码逐个放到omdbi。com web api中以json对象形式获取结果并放入用于收集json对象的数组中最后返回json
但是当我从我的本地主机服务器这样做,它的工作和返回结果作为json像. .
{
"movieRecord":[
{
"Title":"Frozen",
"Year":"2013",
"Rated":"PG",
"Released":"27 Nov 2013",
"Runtime":"102 min",
"Genre":"Animation, Adventure, Comedy",
"Director":"Chris Buck, Jennifer Lee",
"Writer":"Jennifer Lee (screenplay)",
}
]
}
但是当我从webhost服务器执行此操作时,它返回null给我
{
"movieRecord":[
null,
null,
null
]
}
我能做什么?
我代码: <?php
include "conn3.php";
$get_user_email=@$_GET['email'];
$query2 = "SELECT id from tbl_login where email='$get_user_email';";
$hasil2 = mysql_query($query2)or die(mysql_error());
while ($data2=mysql_fetch_array($hasil2)){
$id= $data2['id'];
}
$query = "SELECT movie from usermovieassoc where userr='$id';";
$hasil = mysql_query($query)or die(mysql_error());
if (mysql_num_rows($hasil) > 0) {
$response = array();
$response["movieRecord"] = array();
while ($data = mysql_fetch_array($hasil))
{
$h['movie'] = $data['movie'] ;
$get_id=$h['movie'];
$url = file_get_contents("http://www.omdbapi.com/?i=$get_id&plot=full&r=json");
$arr = json_decode($url,true);
json_encode($arr)
array_push($response["movieRecord"], $arr);
}
echo json_encode($response);
}
else {
echo json_encode($response);
}
?>
1。乘坐@
。
$get_user_email= isset($_GET['email'])?@$_GET['email']:false;
if(!$get_user_email)
die('not all get params are passed');
2。SQl注入。不要马上使用外部数据,特别是你在数据库查询中使用它。您应该始终使来自GET或POST的$vars安全。所以至少:
$query2 = 'SELECT `id` from `tbl_login` where email=.'mysql_real_escape_string($get_user_email);
3。如果得到意想不到的结果,请使用print_r或var_dump调试所有变量、结果和查询:
echo 'get_user_email:'.$get_user_email.'<br/>';
echo 'query 1 ';
print_r($query);
echo 'for each loop data';
print_r($data);
echo 'query 2 ';
print_r($query);
这将帮助您准确地找到为什么您得到错误的结果或当脚本出错/意外的方式