在函数内部使用函数不起作用

时间:2015-10-02 09:43:40

标签: php mysql

我通过一个函数获取用户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时,它可以工作。它有一个错误,但我无法配置它。请帮助我,以便整个查询有效。

1 个答案:

答案 0 :(得分:0)

在您的数据库中,列ip_add很可能设置为varchar,因此您需要将$ ip包装在''""中,因为这是一个字符串。

因此请将您的查询更改为:

$insert_pro = "INSERT INTO `ecommerce`.`cart` 
                      (p_id,ip_add) VALUES ($item_id,'$ip')"
相关问题