diff --git a/library/think/Model.php b/library/think/Model.php index e1b25b46..2a0c6010 100644 --- a/library/think/Model.php +++ b/library/think/Model.php @@ -636,10 +636,18 @@ abstract class Model implements \JsonSerializable, \ArrayAccess public function saveAll($dataSet) { $result = 0; - foreach ($dataSet as $data) { - $result = $this->isUpdate(false)->save($data, [], false); + $db = $this->db(); + $db->startTrans(); + try { + foreach ($dataSet as $data) { + $result = $this->isUpdate(false)->save($data, [], false); + } + $db->commit(); + return $result; + } catch (\Exception $e) { + $db->rollback(); + return false; } - return $result; } /** diff --git a/library/think/model/Merge.php b/library/think/model/Merge.php index 69ef91c5..cef925ac 100644 --- a/library/think/model/Merge.php +++ b/library/think/model/Merge.php @@ -248,7 +248,7 @@ class Merge extends Model } $db->commit(); return $result; - } catch (\PDOException $e) { + } catch (\Exception $e) { $db->rollback(); return false; }