diff --git a/library/think/db/Driver.php b/library/think/db/Driver.php index 5632ec38..28419703 100644 --- a/library/think/db/Driver.php +++ b/library/think/db/Driver.php @@ -441,6 +441,33 @@ abstract class Driver return true; } + /** + * 批处理执行SQL语句 + * 批处理的指令都认为是execute操作 + * @access public + * @param array $sql SQL批处理指令 + * @return boolean + */ + public function batchQuery($sql = []) + { + if (!is_array($sql)) { + return false; + } + // 自动启动事务支持 + $this->startTrans(); + try { + foreach ($sql as $_sql) { + $result = $this->execute($_sql); + } + // 提交事务 + $this->commit(); + } catch (\PDOException $e) { + $this->rollback(); + return false; + } + return true; + } + /** * 将SQL语句中的__TABLE_NAME__字符串替换成带前缀的表名(小写) * @access protected diff --git a/library/think/db/driver/Oracle.php b/library/think/db/driver/Oracle.php index 015f23f2..1ce5f614 100644 --- a/library/think/db/driver/Oracle.php +++ b/library/think/db/driver/Oracle.php @@ -211,6 +211,6 @@ class Oracle extends Driver */ protected function getExplain($sql) { - + return []; } } diff --git a/library/think/db/driver/Pgsql.php b/library/think/db/driver/Pgsql.php index 10f9fdc2..a750e8c1 100644 --- a/library/think/db/driver/Pgsql.php +++ b/library/think/db/driver/Pgsql.php @@ -129,6 +129,6 @@ class Pgsql extends Driver */ protected function getExplain($sql) { - + return []; } } diff --git a/library/think/db/driver/Sqlite.php b/library/think/db/driver/Sqlite.php index 89be71b1..614c4956 100644 --- a/library/think/db/driver/Sqlite.php +++ b/library/think/db/driver/Sqlite.php @@ -110,6 +110,6 @@ class Sqlite extends Driver */ protected function getExplain($sql) { - + return []; } } diff --git a/library/think/db/driver/Sqlsrv.php b/library/think/db/driver/Sqlsrv.php index 481309cc..a8ea68ca 100644 --- a/library/think/db/driver/Sqlsrv.php +++ b/library/think/db/driver/Sqlsrv.php @@ -195,6 +195,6 @@ class Sqlsrv extends Driver */ protected function getExplain($sql) { - + return []; } }