我试图从简单的GET请求中获取lat和lng值并解码JSON结果,但更新的行中似乎没有数据。
当我在URL中插入IP地址时,我可以看到有一个有效的lat和lng值,见下文。
JSON示例:
{
"country_name": "DENMARK",
"country_code": "DK",
"city": "Havdrup",
"ip": "xx",
"lat": "55.4333",
"lng": "9.25"
}
代码:
$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://api.hostip.info/get_json.php?ip={$ip}&position=true"));
$lat = $details->lat;
$lng = $details->lng;
$result_update_settings = mysqli_query(
$con,
"UPDATE users SET
lat = '" . $lat . "',
lng = '" . $lng . "'
WHERE id = '" . $login_session . "'"
) or die(mysqli_error());
答案 0 :(得分:0)
我首先要说明这一点,您应该打开错误报告,以了解可能出现的任何潜在问题。这可以通过在脚本顶部添加以下内容来完成:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
尽量不要简化file_get_contents()
来电。首先要确保一切正常:
$json = file_get_contents("http://api.hostip.info/get_json.php?ip={$ip}&position=true");
$data = json_decode($json);
// you could print_r($data); here to see if you get what you requested.
$lat = $data->lat;
$lng = $data->lng;
// now echo, just to check if you actually get your values!
echo $lat . " & " . $lng;
您确定您的查询是否已成功执行?
var_dump($result_update_settings);
有什么作用?$login_session
?