繁体   English   中英

mysqli插入查询返回false

[英]mysqli insert query returning false

function cart() {

    if(isset($_GET['add_cart'])){

        global $connect;

        $ip = getIp();
        $pro_id = $_GET['add_cart'];
        $check_pro = "SELECT * FROM cart WHERE ip_add = '$ip' AND p_id = '$pro_id'" ;
        $run_check = mysqli_query($connect, $check_pro);

        if(mysqli_num_rows($run_check)>0){
            echo "do a thing";
        }else {
            $insert_pro = "insert into cart (p_id,ip_add) values ('$pro_id','$ip')";
            $run_pro = mysqli_query($connect, $insert_pro);
            if($run_pro){
                echo "<script>window.open('index.php','_self')</script>";
            }
        }

    }

在此处输入图片说明

我很可能错过了这么明显的东西,所以在此先感谢您。

qty列没有默认值,并且在插入新行时没有为其提供值。 这将导致错误。 您需要指定一个值,例如0

另外,由于p_idINT列,因此您无需将值放在引号中。

$insert_pro = "insert into cart (p_id,ip_add, qty) values ($pro_id,'$ip', 0)";

但是更好的方法是使用准备好的语句来防止SQL注入。

$insert_pro = $connect->prepare("insert into cart (p_id,ip_add, qty) values (?, ?, 0)");
$insert_pro->bind_param("is", $pro_id, $ip);
$run_pro = $insert_pro->execute();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM