亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 json 從 curl 存儲到 mysql 表

將 json 從 curl 存儲到 mysql 表

PHP
慕斯王 2022-01-24 10:57:09
我有一個函數可以存儲用戶的 IP 地址,然后curl向 3rd 方 API 發出請求,以根據 ip 憑據獲取地理位置。返回數據為json格式。問題:目前的功能有效,我可以回顯返回位置 echo $api_result['country_name']; 我正在努力實現的是了解如何將這些值存儲在我的數據庫中。當我運行插入時,我的數據庫狀態數組中的列我已經使用了 json_decode 。store_each_visitors_ip_address_and_jurisdiction() {    $date = date("d/m/Y");    $visitors_ip = $_SERVER["REMOTE_ADDR"];    $query = query("SELECT * FROM unique_visitors WHERE 'todays_date' ='$date'");    $result = mysqli_query($connection,$query);    if($result->num_rows == 0) {        $access_key = '12345678912345';             $ch = curl_init('http://api.ipstack.com/'.$visitors_ip.'?access_key='.$access_key.'');            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);            $json = curl_exec($ch); curl_close($ch);            $api_result = json_decode($json, true);             $api_result_two = json_decode($json, true);             echo $api_result['country_name'];             echo $api_result_two['region_name'];             $insert_query = query("INSERT INTO unique_visitors(todays_date, ip_address, country, region) VALUES(CURRENT_TIMESTAMP,'{$visitors_ip}','{$api_result}','{$api_result_two}') ");            confirm($query);    }else{        $row = fetch_array($result);        if(!preg_match('/'. $visitors_ip .'/i', $row['ip_address'])) {            $newIp = $row['ip_address'] . $visitors_ip;            $updateQuery = "UPDATE unique_visitors SET ip_address = '$newIp', 'views' = 'views'+1 WHERE 'todays_date'= '$date'";            mysqli_query($connection,$updateQuery);        }    }}
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

您不能將數組存儲在表中,您需要存儲數組的特定元素。


$insert_query = query("INSERT INTO unique_visitors(todays_date, ip_address, country, region) 

        VALUES(CURRENT_TIMESTAMP,'{$visitors_ip}','{$api_result['country_name']}','{$api_result['region_name']}') ");

但是您應該使用準備好的語句來防止 SQL 注入。


$insert_stmt = $connection->prepare("INSERT INTO unique_visitors(todays_date, ip_address, country, region) 

        VALUES (CURRENT_TIMESTAMP, ?, ?, ?)";

$insert_stmt->bind_param("sss", $visitors_ip, $api_result['country_name'], $api_result['region_name']);

$insert_stmt->execute();


查看完整回答
反對 回復 2022-01-24
  • 1 回答
  • 0 關注
  • 180 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號