2017-06-16 4 views
0

mein Code:abgefangene Ausnahme 'PDOException' mit der Meldung '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>"; 

    } 
} 

fataler Fehler: Fatal error: abgefangene Ausnahme 'PDOException' mit der Meldung' SQLSTATE [HY093]: Ungültige Parameternummer: Anzahl der gebundene Variablen stimmen nicht mit der Anzahl der Token in C: \ AppServ \ www \ class \ Cadastro.class.php überein: 85 Stack-Trace: # 0 C: \ AppServ \ www \ Klasse \ Cadastro.class.php (85): PDOStatement -> execute() # 1 C: \ AppServ \ www \ cadastrar \ index.php (7): Cadastro-> registro ('SkelletonX', 'SkelletonX', 'SkelletonX', 'SkelletonX @ gmai ...', ' SkelletonX ') # 2 {main} geworfen in C: \ AppServ \ www \ Klasse \ Cadastro.class.php auf Linie 85

+0

Legen Sie keine Anführungszeichen um '?' In der Abfrage. Das macht sie zu Literalen, nicht zu Platzhaltern. – Barmar

Antwort

0

Sie müssen Ihre Abfrage durch ersetzen

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

Erklären Sie, was Sie geändert haben und warum. – Barmar

+0

@Barmar Die Zitate entfernt, sonst wird es nicht funktionieren? – Ian

+2

Rechts. Diese Erklärung sollte in der Antwort enthalten sein. – Barmar

Verwandte Themen