【问题标题】:PHP PDO error syntaxPHP PDO 错误语法
【发布时间】:2017-04-04 00:53:53
【问题描述】:

谁能帮帮我:

我写的时候出错了

$check = $db->prepare("SELECT email FROM user WHERE email = ?");
if($check->rowCount() == 1){
    $error = "<div class ='text-danger'> Email Telah Digunakan </div>"; 
} else {
    $code = rand();
    $status = 0;
    try{
        $query = $db->prepare("INSERT INTO users(first_name,last_name,email,password,gender,code,status) VALUES (?,?,?,?,?,?,?,)");
        $query->execute([$first_name,$last_name,$email,password_hash($password,PASSWORD_DEFAULT),$gender,$code,$status]);   
    }
    catch(PDOException $e){
        echo"error:  " .$e->getMessage();
    }
}

【问题讨论】:

  • 你需要先executebind,然后再count
  • 你在VALUES() 的末尾有一个,,后面没有任何东西

标签: php mysql pdo server


【解决方案1】:

好的,所以你在VALUES() 的列表末尾有一个,,后面没有任何东西,这会导致这样的语法错误。这是固定版本:

$check = $db->prepare("SELECT email FROM user WHERE email = ?");
if($check->rowCount() == 1){
    $error = "<div class ='text-danger'> Email Telah Digunakan </div>"; 
}else{
    $code = rand();
    $status = 0;
    try{
        $query = $db->prepare("INSERT INTO users(first_name,last_name,email,password,gender,code,status) VALUES (?,?,?,?,?,?,?)");
        $query->execute([$first_name,$last_name,$email,password_hash($password,PASSWORD_DEFAULT),$gender,$code,$status]);
    }
    catch(PDOException $e){
        echo "error:  " .$e->getMessage();
    }
}

您还缺少if 语句的右括号。或者你可能复制错了。我实际上并没有检查完整的功能,只是我能找到的语法错误。

一个小提示

如果你的代码格式正确,你会更容易发现语法错误很多。一个好的代码编辑器也有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    相关资源
    最近更新 更多