在一个不工作的函数中使用Function


Using Function inside a function not working

我通过一个函数获得用户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')"