我见过类似下面代码的地方。如果查询失败并且出现死锁错误,则打算执行多次尝试。我只是想问你们,这是一个好的做法,还是有任何好处?
$success = false;
$try_count = 5;
do{
try {
$this->_db->beginTransaction();
// PERFORM QUERY 1
// PERFORM QUERY 2
$this->_db->commit();
$success = true;
return true;
}catch(PDOException $e){
$this->_db->rollBack();
$try_count--;
$success = false;
// if not deadlock error, throw it
if($e->getCode()!=1213) throw $e;
if($try_count < 1) return false;
}
}while($try_count > 1 && !$success);
答案 0 :(得分:0)
除非你有充分的理由,这通常是一种不好的做法。我这样说是因为在决定重新查询数据库之前,你必须添加逻辑来查看导致错误的原因并对每个错误做出不同的响应。干杯:)