SQLSTATE[HY093] Error


SQLSTATE[HY093] Error

我正试图在PHP中运行以下程序:

$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

在查询中,您在定义uname的同时设置一个名为username的参数尝试

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

您的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);

这里有错误:

VALUES(:uname,

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

MySql正在查找:username,但找不到它,因为您将其命名为:uname

两者必须匹配。