为了账号安全,请及时绑定邮箱和手机立即绑定

PHP PDO/事务更新语句产生错误

PHP PDO/事务更新语句产生错误

PHP
临摹微笑 2021-06-30 10:47:29
在下面的函数中,我有两个更新语句。第一个执行得很好,但第二个没有执行,产生一个错误(无效的参数号)。阈值是浮点数(例如 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 = :likelhoodwhere likelihood = :likelihood


查看完整回答
反对 回复 2021-07-02
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信