PHP PDO执行UPDATE报HY093参数数量不匹配错误如何解决
问题原因
- 错误日志中的
SQLSTATE[HY093]报错,本质是SQL语句内的占位符数量和实际绑定的参数数量不一致 - 你编写的
updateRequest方法的UPDATE语句里,WHERE条件使用了命名占位符:R_id,但后续参数绑定环节仅绑定了9个业务字段参数,既没有对R_id做数据清洗,也没有绑定:R_id对应的参数,导致参数计数不匹配,SQL执行失败。
修复步骤
修改Req.php中updateRequest方法的代码,补充R_id的清洗和绑定逻辑:
- 在业务字段数据清洗代码后,新增
R_id的清洗逻辑 - 在参数绑定代码末尾,新增
:R_id的绑定逻辑
修改后的完整updateRequest方法代码如下:
// 更新请求 public function updateRequest(){ $sqlQuery = "UPDATE ". $this->db_table ." SET F_Name = :F_Name, L_NAme = :L_NAme, Mobile_No = :Mobile_No, Email = :Email, Website = :Website, Services_Type = :Services_Type, Services_List = :Services_List, Contact_time = :Contact_time, Request_Describtion = :Request_Describtion WHERE R_id = :R_id"; $stmt = $this->conn->prepare($sqlQuery); $this->F_Name=htmlspecialchars(strip_tags($this->F_Name)); $this->L_NAme=htmlspecialchars(strip_tags($this->L_NAme)); $this->Mobile_No=htmlspecialchars(strip_tags($this->Mobile_No)); $this->Email=htmlspecialchars(strip_tags($this->Email)); $this->Website=htmlspecialchars(strip_tags($this->Website)); $this->Services_Type=htmlspecialchars(strip_tags($this->Services_Type)); $this->Services_List=htmlspecialchars(strip_tags($this->Services_List)); $this->Contact_time=htmlspecialchars(strip_tags($this->Contact_time)); $this->Request_Describtion=htmlspecialchars(strip_tags($this->Request_Describtion)); // 新增R_id清洗逻辑 $this->R_id=htmlspecialchars(strip_tags($this->R_id)); // 绑定参数 $stmt->bindParam(":F_Name", $this->F_Name); $stmt->bindParam(":L_NAme", $this->L_NAme); $stmt->bindParam(":Mobile_No", $this->Mobile_No); $stmt->bindParam(":Email", $this->Email); $stmt->bindParam(":Website", $this->Website); $stmt->bindParam(":Services_Type", $this->Services_Type); $stmt->bindParam(":Services_List", $this->Services_List); $stmt->bindParam(":Contact_time", $this->Contact_time); $stmt->bindParam(":Request_Describtion", $this->Request_Describtion); // 新增R_id绑定逻辑 $stmt->bindParam(":R_id", $this->R_id); if($stmt->execute()){ return true; } return false; }
修改完成后重新测试接口即可正常执行更新操作。
内容的提问来源于stack exchange,提问作者zmn
相关产品推荐
相关产品推荐

