DB

MySQL 操作类

主要特性有: 智能化处理返回的数组 减少连接数 只在第一次做操作时开始连接 自动重连 简化常见操作

package

Tango

author

Zheng Kai zhengkai@gmail.com

Methods

__construct

__construct(array $aServer, string $sName) : \Tango\Drive\DB

不应该直接 new,应通过 getInstance() 来获得

access

public

Arguments

$aServer

array

$sName

string

Response

\Tango\Drive\DB

转换变量类型 执行转换

_ColumnConvertDo(array $aRow) : array
access

protected

Arguments

$aRow

array

Response

array

转换变量类型 确定要转换的字段

_ColumnConvertScan(\PDOStatement $oResult) : void
access

protected

Arguments

$oResult

\PDOStatement

连接 MySQL 数据库

_connect() : boolean
access

protected

throws

Response

boolean

自动重连

_connectSmart(array $aError) : boolean

返回值 true 表示重新执行 query

access

protected

throws

Arguments

$aError

array

执行 query 后的报错信息

Response

boolean

实际执行 exec/query 操作

_query(string $sQuery, array $aParam = array(),  $sType) : mixed
throws

Arguments

$sQuery

string

$aParam

array

$sType

Response

mixed

复制表结构、创建新表

cloneTableStructure(mixed $sTableSource, mixed $sTableTarget) : integer
access

public

Arguments

$sTableSource

mixed

$sTableTarget

mixed

Response

integer

清空表

emptyTable(string $sTable) : array
access

public

Arguments

$sTable

string

Response

array

exec 操作(INSERT、UPDATE、DELETE 等)

exec(string $sQuery, array $aParam = array()) : mixed
access

public

Arguments

$sQuery

string

$aParam

array

Response

mixed

auto increment id generator

genAI(string $sTable) : integer
access

public

Arguments

$sTable

string

Response

integer

CREATE TABLE IF NOT EXISTS id_gen ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=binary AUTO_INCREMENT=1;

最常用的方法,获取所有记录,返回为一维或二维数组

getAll(string $sQuery, array $aParam = array(), boolean $bByKey = TRUE) : array
access

public

Arguments

$sQuery

string

$aParam

array

$bByKey

boolean

Response

array

返回当前库占用的索引

getIndexSize() : integer
access

public

Response

integer

对于有 auto increment 字段的 INSERT 的语句,返回其自增值

getInsertID(mixed $sQuery, array $aParam = array()) : integer
access

public

Arguments

$sQuery

mixed

$aParam

array

Response

integer

创建一个连接单例(相同的库只创建一个连接)

getInstance(string $sName, boolean $bReset = FALSE) : \Tango\Drive\DB
static
static
access

public

throws

Arguments

$sName

string

数据库alias

$bReset

boolean

是否重置连接

Response

\Tango\Drive\DB

只取第一行

getRow( $sQuery, array $aParam = array()) : mixed
throws

Arguments

$sQuery

$aParam

array

Response

mixed

只取第一行的第一个字段

getSingle( $sQuery, array $aParam = array()) : boolean|mixed

Arguments

$sQuery

$aParam

array

Response

boolean|mixed

优化表

optimizeTable(string $sTable) : array
access

public

Arguments

$sTable

string

Response

array

返回原始 PDO 类,方便直接操作

pdo() : \PDO
access

public

Response

\PDO

query 操作(SELECT/SHOW 等)

query(string $sQuery, array $aParam = array()) : mixed
access

public

Arguments

$sQuery

string

$aParam

array

Response

mixed

修复表

repairTable(string $sTable) : array
access

public

Arguments

$sTable

string

Response

array

如果下一条是 INSERT 语句,这个函数设置可以保证 INSERT 时如果表不存在, 会自动创建表(基于已存在的表结构复制)

setAutoCreateTable(string $sSource, string $sTarget) : void
access

public

Arguments

$sSource

string

原始表名

$sTarget

string

要复制的目标表名

关闭 log

setLogOff() : void
static
static
access

public

开启 log

setLogOn() : void
static
static
access

public

Properties

数据库alias

_sName : 

Type(s)

debug 模式

_bDebug : 

Type(s)

对于不同的 MySQL 字段做不同方式的处理

_lColumnNeedConvert : 

Type(s)

保存不同的连接单例

_lInstance : 
static

Type(s)

连接信息

_aConfig : 

Type(s)

原始 PDO 类

_oPDO : \PDO
var

Type(s)

\PDO

如果定义了对照关系,会在表不存在的时候按指定表的结构来创建新表

_aAutoCreateTable : 
see

Type(s)

前一次的 PDO 报错

_iErrorLast : 

Type(s)

一次 prepare 后可以多次 execute,这里保存那个 prepare 内容

_sPrevPrepareQuery : 

Type(s)

一次 prepare 后可以多次 execute,这里保存那个 prepare 内容

_oPrevPrepare : 

Type(s)

是否记 log

_bLog : 
static

Type(s)

对于不同的 MySQL 字段做不同方式的处理

lTypeNeedConvert : 
static

Type(s)