在下面的函数中,我有两个更新语句。第一个执行得很好,但第二个没有执行,产生一个错误(无效的参数号)。阈值是浮点数(例如 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()];
}
}
小唯快跑啊