2016-07-22 21 views
2

Ich versuche, die folgenden in PHP auszuführen:SQLSTATE [HY093] Fehler

$stmt = $db_con->prepare("SELECT * FROM users WHERE email=:email"); 
$stmt->execute(array(":email"=>$user_email)); 
$count = $stmt->rowCount(); 

if($count==0){ 

$stmt = $db_con->prepare("INSERT INTO users(username,email,password,ip)VALUES(:uname, :email, :password, :ip)"); 
$stmt->bindParam(":username",$username); 
$stmt->bindParam(":email",$useremail); 
$stmt->bindParam(":password",$hasheduserpassword); 
$stmt->bindParam(":ip",$userip); 

Als Ergebnis erhalte ich folgende Fehlermeldung:

SQLSTATE[HY093]: Invalid parameter number: parameter was not defined 

Antwort

1

In der Abfrage Sie uname während definieren einen Parameter namens username versuchen

$stmt = $db_con->prepare("INSERT INTO users(username,email,password,ip)VALUES(:username, :email, :password, :ip)"); 
0

Ihre error liegt hier

$stmt = $db_con->prepare("INSERT INTO users(username,email,password,ip)VALUES(:uname, :email, :password, :ip)"); 
// $stmt->bindParam(":username",$username);// this shoud be uname 
$stmt->bindParam(":uname",$username); 
0

Fehler ist hier:

VALUES(:uname,

$stmt->bindParam(":username",$username);

MySql sucht :username aber es es nicht finden können, weil Sie es :uname benannt.

Beide müssen übereinstimmen.

Verwandte Themen