我正在尝试将IP从数据库中取出并将它们分成不同的数组,以便我可以计算每个国家/地区的客户数量,并将它们放在欧洲地图中。
现在我被困在将国家分成不同数组的部分。
$result_ip = $dbhandle->query("SELECT ip FROM email;");
$row_cnt_ip = $result_ip->num_rows;
$NL = array('');
$AL = array('');
$NO_EU = array('');
$ip = $result_ip;
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));
while($r = $details->country->fetch_array(MYSQLI_ASSOC)):
for($i = 1; $i < $row_cnt_ip; $i++) {
switch ($details->country) {
case "NL": //Netherlands
array_push($NL,"$details->country");
break;
case "AL": //Albania
array_push($AL,"$details->country");
break;
default;
array_push($NO_EU,"$details->country");
break;
}
}
endwhile;
我得到的错误是:
可捕获的致命错误:类mysqli_result的对象不可能 转换为字符串
任何人都可以帮我弄清问题是什么?
答案 0 :(得分:1)
您无法直接使用mysqli_query
结果。您需要从查询结果中获取数据
$result_ip = $dbhandle->query("SELECT ip FROM email");
$row_cnt_ip = $result_ip->num_rows;
$NL = array('');
$AL = array('');
$NO_EU = array('');
$row=$result_ip->fetch_assoc();// fetch data
$ip=$row['ip'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));