我通过一个函数获取用户IP。并使用另一个函数插入其他数据和已存储在函数中的IP。但问题是,在存储其他信息时,IP不会存储在数据库中。
function getIp(){
$ip = $_SERVER['REMOTE_ADDR'];
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
return $ip;
}
function cart(){
if (isset($_GET['add_cart'])){
global $con;
$ip = getIp();
$item_id = $_GET['add_cart'];
$insert_pro = "INSERT INTO `ecommerce`.`cart`
(p_id,ip_add) VALUES ($item_id,$ip)";
$run_pro = mysqli_query($con, $insert_pro);
echo"<script>window.open('self'.'index.php')</script>";
}
}
当我运行整个查询时,它不会在数据库中存储任何内容,但是当我运行查询而不存储IP时,它可以工作。它有一个错误,但我无法配置它。请帮助我,以便整个查询有效。
答案 0 :(得分:0)
在您的数据库中,列ip_add
很可能设置为varchar
,因此您需要将$ ip包装在''
或""
中,因为这是一个字符串。
因此请将您的查询更改为:
$insert_pro = "INSERT INTO `ecommerce`.`cart`
(p_id,ip_add) VALUES ($item_id,'$ip')"