mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 07:12:47 +08:00
更新数据库驱动类
增加各自的parseDsn方法
This commit is contained in:
@@ -14,12 +14,28 @@ use Think\Db\Driver;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* mysql数据库驱动
|
* mysql数据库驱动
|
||||||
* @category Extend
|
|
||||||
* @package Extend
|
|
||||||
* @subpackage Driver.Db
|
|
||||||
* @author liu21st <liu21st@gmail.com>
|
|
||||||
*/
|
*/
|
||||||
class Mysql extends Driver{
|
class Mysql extends Driver{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析pdo连接的dsn信息
|
||||||
|
* @access public
|
||||||
|
* @param array $config 连接信息
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function parseDsn($config){
|
||||||
|
$dsn = 'mysql:dbname='.$config['database'].';host='.$config['hostname'];
|
||||||
|
if(!empty($config['hostport'])) {
|
||||||
|
$dsn .= ';port='.$config['hostport'];
|
||||||
|
}elseif(!empty($config['socket'])){
|
||||||
|
$dsn .= ';unix_socket='.$config['socket'];
|
||||||
|
}
|
||||||
|
if(!empty($config['charset'])){
|
||||||
|
$dsn .= ';charset='.$config['charset'];
|
||||||
|
}
|
||||||
|
return $dsn;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取得数据表的字段信息
|
* 取得数据表的字段信息
|
||||||
* @access public
|
* @access public
|
||||||
|
|||||||
@@ -14,16 +14,26 @@ use Think\Db\Driver;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Oracle数据库驱动
|
* Oracle数据库驱动
|
||||||
* @category Extend
|
|
||||||
* @package Extend
|
|
||||||
* @subpackage Driver.Db
|
|
||||||
* @author ZhangXuehun <zhangxuehun@sohu.com>
|
|
||||||
*/
|
*/
|
||||||
class Oracle extends Driver{
|
class Oracle extends Driver{
|
||||||
|
|
||||||
private $table = '';
|
private $table = '';
|
||||||
protected $selectSql = 'SELECT * FROM (SELECT thinkphp.*, rownum AS numrow FROM (SELECT %DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%%ORDER%) thinkphp ) %LIMIT%%COMMENT%';
|
protected $selectSql = 'SELECT * FROM (SELECT thinkphp.*, rownum AS numrow FROM (SELECT %DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%%ORDER%) thinkphp ) %LIMIT%%COMMENT%';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析pdo连接的dsn信息
|
||||||
|
* @access public
|
||||||
|
* @param array $config 连接信息
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function parseDsn($config){
|
||||||
|
$dsn = 'oci:dbname='.$config['database'];
|
||||||
|
if(!empty($config['charset'])) {
|
||||||
|
$dsn .= ';charset='.$config['charset'];
|
||||||
|
}
|
||||||
|
return $dsn;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 执行语句
|
* 执行语句
|
||||||
* @access public
|
* @access public
|
||||||
|
|||||||
@@ -14,13 +14,23 @@ use Think\Db\Driver;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Pgsql数据库驱动
|
* Pgsql数据库驱动
|
||||||
* @category Extend
|
|
||||||
* @package Extend
|
|
||||||
* @subpackage Driver.Db
|
|
||||||
* @author liu21st <liu21st@gmail.com>
|
|
||||||
*/
|
*/
|
||||||
class Pgsql extends Driver{
|
class Pgsql extends Driver{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析pdo连接的dsn信息
|
||||||
|
* @access public
|
||||||
|
* @param array $config 连接信息
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function parseDsn($config){
|
||||||
|
$dsn = 'pgsql:dbname='.$config['database'].';host='.$config['hostname'];
|
||||||
|
if(!empty($config['hostport'])) {
|
||||||
|
$dsn .= ';port='.$config['hostport'];
|
||||||
|
}
|
||||||
|
return $dsn;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取得数据表的字段信息
|
* 取得数据表的字段信息
|
||||||
* @access public
|
* @access public
|
||||||
|
|||||||
@@ -14,13 +14,20 @@ use Think\Db\Driver;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Sqlite数据库驱动
|
* Sqlite数据库驱动
|
||||||
* @category Extend
|
|
||||||
* @package Extend
|
|
||||||
* @subpackage Driver.Db
|
|
||||||
* @author liu21st <liu21st@gmail.com>
|
|
||||||
*/
|
*/
|
||||||
class Sqlite extends Driver {
|
class Sqlite extends Driver {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析pdo连接的dsn信息
|
||||||
|
* @access public
|
||||||
|
* @param array $config 连接信息
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function parseDsn($config){
|
||||||
|
$dsn = 'sqlite:'.$config['database'];
|
||||||
|
return $dsn;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取得数据表的字段信息
|
* 取得数据表的字段信息
|
||||||
* @access public
|
* @access public
|
||||||
|
|||||||
@@ -14,13 +14,30 @@ use Think\Db\Driver;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Sqlsrv数据库驱动
|
* Sqlsrv数据库驱动
|
||||||
* @category Extend
|
|
||||||
* @package Extend
|
|
||||||
* @subpackage Driver.Db
|
|
||||||
* @author liu21st <liu21st@gmail.com>
|
|
||||||
*/
|
*/
|
||||||
class Sqlsrv extends Driver{
|
class Sqlsrv extends Driver{
|
||||||
protected $selectSql = 'SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER (%ORDER%) AS ROW_NUMBER FROM (SELECT %DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%) AS thinkphp) AS T1 %LIMIT%%COMMENT%';
|
protected $selectSql = 'SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER (%ORDER%) AS ROW_NUMBER FROM (SELECT %DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%) AS thinkphp) AS T1 %LIMIT%%COMMENT%';
|
||||||
|
// PDO连接参数
|
||||||
|
protected $options = [
|
||||||
|
PDO::ATTR_CASE => PDO::CASE_LOWER,
|
||||||
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
|
PDO::ATTR_STRINGIFY_FETCHES => false,
|
||||||
|
PDO::SQLSRV_ATTR_ENCODING => PDO::SQLSRV_ENCODING_UTF8,
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析pdo连接的dsn信息
|
||||||
|
* @access public
|
||||||
|
* @param array $config 连接信息
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function parseDsn($config){
|
||||||
|
$dsn = 'sqlsrv:dbname='.$config['database'].';Server='.$config['hostname'];
|
||||||
|
if(!empty($config['hostport'])) {
|
||||||
|
$dsn .= ','.$config['hostport'];
|
||||||
|
}
|
||||||
|
return $dsn;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取得数据表的字段信息
|
* 取得数据表的字段信息
|
||||||
@@ -109,7 +126,7 @@ class Sqlsrv extends Driver{
|
|||||||
.$this->parseWhere(!empty($options['where'])?$options['where']:'')
|
.$this->parseWhere(!empty($options['where'])?$options['where']:'')
|
||||||
.$this->parseLock(isset($options['lock'])?$options['lock']:false)
|
.$this->parseLock(isset($options['lock'])?$options['lock']:false)
|
||||||
.$this->parseComment(!empty($options['comment'])?$options['comment']:'');
|
.$this->parseComment(!empty($options['comment'])?$options['comment']:'');
|
||||||
return $this->execute($sql);
|
return $this->execute($sql,$this->parseBind(!empty($options['bind'])?$options['bind']:[]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -125,7 +142,7 @@ class Sqlsrv extends Driver{
|
|||||||
.$this->parseWhere(!empty($options['where'])?$options['where']:'')
|
.$this->parseWhere(!empty($options['where'])?$options['where']:'')
|
||||||
.$this->parseLock(isset($options['lock'])?$options['lock']:false)
|
.$this->parseLock(isset($options['lock'])?$options['lock']:false)
|
||||||
.$this->parseComment(!empty($options['comment'])?$options['comment']:'');
|
.$this->parseComment(!empty($options['comment'])?$options['comment']:'');
|
||||||
return $this->execute($sql);
|
return $this->execute($sql,$this->parseBind(!empty($options['bind'])?$options['bind']:[]));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user