Php PDO语句->执行()用户->用户注册(数组)
我犯了这个错误Php PDO语句->执行()用户->用户注册(数组),php,Php,我犯了这个错误 致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[HY093]:无效参数编号:未定义参数' 在C:\xampp\htdocs\test\lib\user.php中:71堆栈跟踪:0 C:\xampp\htdocs\test\lib\user.php71:PDOStatement->execute1 C:\xampp\htdocs\test\lib\user.php19: 用户->电子邮件检查'jpjadeja24@gmai...' 2 C:\xamp
致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[HY093]:无效参数编号:未定义参数' 在C:\xampp\htdocs\test\lib\user.php中:71堆栈跟踪:0 C:\xampp\htdocs\test\lib\user.php71:PDOStatement->execute1 C:\xampp\htdocs\test\lib\user.php19: 用户->电子邮件检查'jpjadeja24@gmai...' 2 C:\xampp\htdocs\test\register.php7:User->userRegistrationArray 3 {main}在第71行的C:\xampp\htdocs\test\lib\user.php中抛出
bindValue调用中使用的参数名称必须与查询中使用的名称匹配 所以 或者,更改查询参数
$sql = "insert into register
(name,user_name,email_id,password)
values (:name, :username, :email, :password)";
$query = $this->db->pdo->prepare($sql);
$query->bindValue(':name',$name);
$query->bindValue(':user_name',$usnm);
// The FIX
//$query->bindValue(':email_id',$email);
$query->bindValue(':email',$email);
$query->bindValue(':password',$pass);
$result = $query->execute();
另外,这将是您的下一个问题,一个丢失的位置,您在绑定时犯了相同的错误
我的错误可能是因为为参数指定值时输入错误。 这应该行得通。在第47行修改您的查询
public function emailcheck($email){
$sql = "select email_id from register WHERE email_id = :email";
// ^^^^^
$query = $this->db->pdo->prepare($sql);
// AND THE SAME FIX REQUIRED HERE
//$query->bindparam(':email_id', $email);
$query->bindValue(':email',$email);
$query->execute();
如果您不想麻烦格式化代码以使其可读**为什么我们要费心去帮助呢?这应该已经在prepare调用中失败了,因为select email_id from register email_id=:email显然不是一个有效的SQL语句,它缺少WHERE关键字。谢谢你,现在在第53行中出现了相同的错误,未捕获的异常“pdo exception”,消息是“SQLSTATE[HY093]:无效参数编号:未在C:\xampp\htdocs\test\lib\user.php中定义参数:53堆栈跟踪:0 C:\xampp\htdocs\test\lib\user.php53:PDOStatement->执行1 C:\xampp\htdocs\test\register.php7:user->userRegistrationArray 2{main}在C:\xampp\htdocs\test\lib\user.php的第53行中抛出见修改后的答案,我错过了那个答案,但是你真的应该能够自己解决这个问题,因为它与前面提到的问题完全相同。我尝试但不工作,发生了相同的错误,所以你需要在第69行将其更改为电子邮件id。但是现在,此代码中出现了错误$sql=插入注册表名、用户名、电子邮件、密码值:name、:username、:email、,:密码$query=$this->db->pdo->prepare$sql$查询->bindValue':name',$name$查询->bindValue':用户名',$usnm$查询->bindValue':email',$email$查询->bindValue':密码',$pass$结果=$query->execute;尝试打印sql错误。打印\u r$query->errorInfo;未捕获异常“PDOException”,消息为“SQLSTATE[HY093]:参数编号无效:未定义参数”打印此错误
$sql = "insert into register
(name,user_name,email_id,password)
values (:name, :username, :email_id, :password)";
// ^^^^^^^^^
$query = $this->db->pdo->prepare($sql);
$query->bindValue(':name',$name);
$query->bindValue(':user_name',$usnm);
$query->bindValue(':email_id',$email);
$query->bindValue(':password',$pass);
$result = $query->execute();
public function emailcheck($email){
$sql = "select email_id from register WHERE email_id = :email";
// ^^^^^
$query = $this->db->pdo->prepare($sql);
// AND THE SAME FIX REQUIRED HERE
//$query->bindparam(':email_id', $email);
$query->bindValue(':email',$email);
$query->execute();
$sql = "insert into register (name,user_name,email_id,password) values (:name, :user_name, :email_id, :password)";