我正试图在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
。
两者必须匹配。