2016-07-22 94 views
2

我试图运行PHP如下:SQLSTATE [HY093]错误

$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); 

其结果是,我得到以下错误:

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

回答

1

在你定义UNAME而查询设置一个名为username参数 尝试

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

error就在这里

$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

错误是在这里:

VALUES(:uname,

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

MySQL是寻找:username,但它无法找到它,因为你把它命名为:uname

两者必须匹配。

相关问题