在下面的函数中,我有两个更新语句。第一个执行得很好,但第二个没有执行,产生一个错误(无效的参数号)。阈值是浮点数(例如 0.55,最多两位数),而似然和后果是整数)。如何更正我的代码以不产生此错误?public function updateAll($params = []){ $sql = "update risklevels set riskmaximum = :riskmaximum, riskhigh = :riskhigh, riskmedium = :riskmedium, riskminimum = :riskminimum where risklevelid = 1"; $sql2 = "update riskmatrixthresholds set level = :level where likelihood = :likelhood and consequence = :consequence"; try { $this->db->beginTransaction(); $statement = $this->db->prepare($sql); $statement->bindValue(':riskmaximum', $params['Levels']['riskmaximum']); $statement->bindValue(':riskhigh' , $params['Levels']['riskhigh']); $statement->bindValue(':riskmedium' , $params['Levels']['riskmedium']); $statement->bindValue(':riskminimum' , $params['Levels']['riskminimum']); $statement->execute(); for ($l = 1; $l <= 5; $l++) { for($c = 1; $c <= 5; $c++) { $threshold = $params['Thresholds'][$l][$c]; $statement2 = $this->db->prepare($sql2); $statement2->bindValue(':level', $threshold); $statement2->bindValue(':likelihood', $l); $statement2->bindValue(':consequence', $c); $statement2->execute(); } } $this->db->commit(); return ["Succeeded" => true, "Result" => "Risk Configuration Updated!"]; } catch (\PDOException $e) { return ["Succeeded" => false, "Result" => $e->getMessage()]; }}
1 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
您拼错了 SQL 变量之一。
更改where likelihood = :likelhood
为where likelihood = :likelihood
- 1 回答
- 0 关注
- 115 浏览
添加回答
举报
0/150
提交
取消