php – SQLSTATE [HY093]:插入mysql db期间的pdo语句

前端之家收集整理的这篇文章主要介绍了php – SQLSTATE [HY093]:插入mysql db期间的pdo语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的 PHP代码实现插入到db:
  1. <?PHP
  2.  
  3. require_once "includes/db_data_inc.PHP";
  4.  
  5. try
  6. {
  7. $DBH = new PDO("MysqL:host=$db_host;dbname=$db_name",$db_user,$db_pass);
  8.  
  9. $DBH->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  10.  
  11. $cathy = new patient($_POST['name'],$_POST['surname'],$_POST['address'],$_POST['birth-place'],$_POST['province'],$_POST['dt'],$_POST['gender'],$_POST['select']);
  12.  
  13. $STH = $DBH->prepare("INSERT INTO users (name,surname,address,birth_place,province,dt,sex,case) value (:name
  14. :surname,:address,:birth_place,:province,:dt,:sex,:case)");
  15.  
  16. $STH->execute((array)$cathy);
  17.  
  18. }
  19. catch (PDOException $pdoe)
  20. {
  21. error_log($pdoe->getMessage());
  22. die("An error was encountered!");
  23. }
  24.  
  25. ?>

这里是db_data_inc.PHP,其中存储了db_info以及我创建对象患者的位置

  1. $db_host = 'localhost';
  2.  
  3. $db_name = 'main_db';
  4.  
  5. $db_user = 'root';
  6.  
  7. $db_pass = 'root';
  8.  
  9. /* Create an object patient */
  10.  
  11. class patient
  12. {
  13. public $name;
  14. public $surname;
  15. public $address;
  16. public $birth_place;
  17. public $province;
  18. public $birth_date;
  19. public $sex;
  20. public $case;
  21.  
  22. function __construct($nm,$sur,$addr,$bp,$pr,$bd,$sx,$cs)
  23. {
  24. $this->name = $nm;
  25. $this->surname = $sur;
  26. $this->address = $addr;
  27. $this->birth_place = $bp;
  28. $this->province = $pr;
  29. $this->birth_date = $bd;
  30. $this->sex = $sx;
  31. $this->case = $cs;
  32. }
  33.  
  34. }

我收到此错误

  1. [10-Feb-2012 21:14:29] sqlSTATE[HY093]: Invalid parameter number: parameter was not defined

但我没有意识到原因……为什么我得到这个错误?有人可以帮帮我吗?哪里出错了?

在您的查询中,您使用:dt作为占位符,但在类构造函数中,您使用$this-> birth_date.

一旦转换,这将创建一个索引为’birth_date’的数组,该数组与命名参数“dt”不匹配:选择一个或另一个.

猜你在找的PHP相关文章