当用户尝试注册时,我正在检查第一个表设备,如果有可用的device_id我想提供给用户trial = 0,如果没有任何device_id,我想在该表中插入device_id并希望用户试用= 1,但是目前总是设置trial = 1并在表设备中插入device_id。
我当前的代码如下

$serial = $POST["serial"];
    $fcm = $POST["fcm"];
    $trial  = 0;
    $trial_sql = "SELECT FROM device WHERE device_id = $serial";
        $trial_result = mysqli_query($conn, $trial_sql);
        if (mysqli_num_rows($trial_result) == 0) {
         $device_sql = "INSERT INTO device(device_id) VALUES('$serial')";
         if($conn->query($device_sql)){
             $trial = 1;
            }
    }
    $sql = "INSERT INTO user(name, email, password, device_id, trial, fcm) VALUES('$name', '$email', '$password', '$serial', $trial, '$fcm')";
    if($conn->query($sql)) {
        $response["code"] = 1;
    }
    return json_encode($response);


让我知道是否有人可以纠正我的错误。
谢谢

最佳答案

你们都需要指定一列来选择以及在device_id周围加上引号...

$trial_sql = "SELECT * FROM device WHERE device_id = '$serial'";


如果您使用准备好的语句,引号将不是问题。

关于php - MySQLi条件无法正常运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49799089/

10-13 00:56