我通过一个函数获得用户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时,它可以工作。有一个错误,但我无法配置出来。请帮助我,使整个查询工作。
在您的数据库中,列ip_add
最有可能设置为varchar
,因此您需要将$ip包装在''
或""
中,因为它是一个字符串。
所以把你的查询改为:
$insert_pro = "INSERT INTO `ecommerce`.`cart`
(p_id,ip_add) VALUES ($item_id,'$ip')"