2017-06-16 20 views
0

私のコード:キャッチされない例外メッセージと 'PDOException' 'SQLSTATE [HY093]

public function registro($login, $senha, $confsenha, $email, $nick){ 
    $pw = strtoupper(md5($senha)); 
    $pw2 = strtoupper(md5($confsenha)); 
    if (!self::check_login($login)){ 

     if(!self::check_email($email)){ //ok 

      if($pw == $pw2){ 

       $conexao = new Config; 
       $conect = $conexao->getConn(); 
       $rg = $conect->prepare("INSERT INTO account (login, Passwd, Email, Nick, Gamepoint)VALUES ('?', '?', '?', '?', ?);"); 
       $rg->bindValue(1, $login); 
       $rg->bindValue(2, $pw); 
       $rg->bindValue(3, $email); 
       $rg->bindValue(4, $nick); 
       $rg->bindValue(5, 5000); //valor gamepoint 
       $rg->execute(); 


      }else{ 

      return "<div class='n_error'><p>Confirmação de senha incorreta.</p></div>"; 
      } 
     }else{ 
      return "<div class='n_error'><p>Email em uso.</p></div>"; 
     } 
    }else{ 
     return "<div class='n_error'><p>Login em uso.</p></div>"; 

    } 
} 

致命的なエラー:致命的なエラー:キャッチされない例外 ':無効なパラメータ番号:番号のSQLSTATEが[HY093]' メッセージと' PDOException C:\ AppServ \ www \ class \ Cadastro.class.php:85スタックトレース:#0 C:\ AppServ \ www \ class \ Cadastro.class.php(85):PDOStatement Cadastro-> registro( 'SkelletonX'、 'SkelletonX'、 'SkelletonX'、 'SkelletonX @ gmai ...'、 'SkelletonX'、 'SkelletonX' SkelletonX ')#2 {メイン}はC:\ AppServ \ www \ class \ Cadastro.class.phpに85行で投げた

+0

でクエリを交換する必要がありますか?'クエリで。それは、プレースホルダーではなくリテラルになります。 – Barmar

答えて

0

あなたは `の前後に引用符を入れないでください

$rg = $conect->prepare("INSERT INTO account (login, Passwd, Email, Nick, Gamepoint)VALUES (?,?, ?, ?, ?);"); 
+0

変更した理由とその理由を説明します。 – Barmar

+0

@Barmar引用符を削除しました。それ以外の場合は動作しません。 – Ian

+2

その説明が答えにあるはずです。 – Barmar

関連する問題