Db类增加批处理执行sql操作方法

This commit is contained in:
thinkphp
2016-04-10 15:45:00 +08:00
parent f97626f6a2
commit 4aa86efc5a
5 changed files with 31 additions and 4 deletions

View File

@@ -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

View File

@@ -211,6 +211,6 @@ class Oracle extends Driver
*/
protected function getExplain($sql)
{
return [];
}
}

View File

@@ -129,6 +129,6 @@ class Pgsql extends Driver
*/
protected function getExplain($sql)
{
return [];
}
}

View File

@@ -110,6 +110,6 @@ class Sqlite extends Driver
*/
protected function getExplain($sql)
{
return [];
}
}

View File

@@ -195,6 +195,6 @@ class Sqlsrv extends Driver
*/
protected function getExplain($sql)
{
return [];
}
}