数据库连接抽象类,无法直接实例化
namespace ginkgo\db;
abstract class Connector {
// 属性
public $config = array();
public $obj_builder;
public $obj_pdo;
public $obj_result;
protected static $instance;
protected $isConnect;
protected $mid;
protected $optDebugDump = false;
protected $paramType = array(
'bool' => PDO::PARAM_BOOL,
'int' => PDO::PARAM_INT,
'str' => PDO::PARAM_STR,
);
protected $_table = array();
protected $_tableTemp = array();
protected $_pk = array();
protected $_force = '';
protected $_distinct = false;
protected $_join = '';
protected $_where = '';
protected $_whereOr = array();
protected $_whereAnd = array();
protected $_paginate = array();
protected $_group = '';
protected $_order = '';
protected $_limit = '';
protected $_bind = array();
protected $_fetchSql = false;
private static $configThis = array(
'type' => 'mysql',
'host' => '',
'name' => '',
'user' => '',
'pass' => '',
'charset' => 'utf8',
'prefix' => 'ginkgo_',
'debug' => false,
'port' => 3306,
);
// 方法
public static instance( [ array $config ] ) : object
public config( [ array $config ] )
public connect( [ array $config ] )
public exec( string $sql ) : int
public query( string $sql ) : object
public lastInsertId() : int
public prepare( string $sql [, mixed $bind [, mixed $value [, string $type ]]] ) : object
public execute( [ mixed $bind [, mixed $value [, string $type [, bool $reset = true ]]]] ) : object
public distinct( [ bool $bool = true ] ) : object
public paginate( [ int $perpage = 0 [, mixed $current = 'get' [, string $pageparam = 'page' [, int $pergroup = 0 ]]]] ) : object
public fetchSql( [ bool $bool = true ] ) : object
public getRowCount() : int
public getRow() : mixed
public getResult( [ bool $all = true [, int $type = PDO::FETCH_ASSOC ]] ) : mixed
public setModel( string $model )
public setTable( string $table )
public getTable() : string
public setPk( string $pk )
public getPk() : string
public bind( mixed $bind [, mixed $value [, string $type ]] ) : object
public resetSql()
protected __construct( [ array $config ] ) : object
protected __clone()
protected fetchBind( string $sql, mixed $bind [, mixed $value [, string $type ]] ) : string
private bindProcess( scalar $param, scalar $value, [ string ] ) : bool
private fetchBindProcess( scalar $param, scalar $value, [ string $type ] ) : bool
private getType( scalar $value, [ string $type ] ) : string
private dsnProcess() : string
}
- | 权限 | 类型 | 描述 |
---|---|---|---|
属性 | - | - | - |
$config |
public | array | 配置 |
$obj_builder |
public | object | 语句构造器实例 |
$obj_pdo |
public | object | PDO 实例 |
$obj_result |
public | object | PDOStatement 对象 |
$instance |
protected | object static | 本类的实例 |
$isConnect |
protected | bool | 是否连接标记 |
$mid |
protected | string | 模型 ID |
$optDebugDump |
protected | mixed | 调试配置 |
$_table |
protected | string | 数据表名 |
$_tableTemp |
protected | array | 临时数据表名(切换操作的数据表、对多表进行操作) |
$_pk |
protected | string | 主键 0.2.2 新增 |
$_force |
protected | string | 强制使用索引名 |
$_distinct |
protected | mixed | 是否不重复 |
$_join |
protected | string | join 语句 |
$_where |
protected | string | where 条件语句 |
$_whereOr |
protected | array | whereOr 语句数组 |
$_whereAnd |
protected | array | whereAnd 语句数组 |
$_paginate |
protected | array | 分页参数 |
$_group |
protected | string | group 语句 |
$_order |
protected | string | order 语句 |
$_limit |
protected | string | limit 语句 |
$_bind |
protected | array | 绑定参数数组 |
$_fetchSql |
protected | bool | 是否获取 sql 语句 |
$paramType |
protected | array | 默认参数类型 |
$configThis |
private | array | 默认配置 |
方法 | - | - | - |
instance() | public | static | 实例化方法 |
config() | public | 配置数据库 | |
connect() | public | 连接数据库 | |
exec() | public | 执行原生 SQL(一般用于 插入、更新 或者 删除) | |
query() | public | 执行原生 SQL(一般用于 查询) | |
lastInsertId() | public | 取得新插入的 ID | |
prepare() | public | 预处理 SQL 语句 | |
execute() | public | 执行预处理 SQL 语句 | |
distinct() | public | 是否查询不重复的记录 | |
paginate() | public | 分页 | |
fetchSql() | public | 是否获取 SQL 语句 | |
getRowCount() | public | 取得影响行数 | |
getRow() | public | 取得当前行数据 | |
getResult() | public | 取得结果 | |
setModel() | public | 设置模型名 | |
setTable() | public | 设置数据表名 | |
getTable() | public | 取得当前数据表名 | |
setPk() | public | 设置主键 0.2.2 新增 |
|
getPk() | public | 取得当前主键名 0.2.2 新增 |
|
bind() | public | 绑定参数 | |
resetSql() | public | 重置 SQL | |
fetchBind() | public | 取得绑定后 SQL(配合 fetchSql() 方法) |
|
__construct() | protected | 同 instance() | |
__clone() | protected | 克隆,无实际功能,仅供限制为单例模式使用 | |
bindProcess() | private | 绑定处理 | |
fetchBindProcess() | private | 绑定处理(配合 fetchSql() 方法) |
|
getType() | private | 取得类型 | |
dsnProcess() | private | 根据配置进行 DSN 处理 |
$config
配置,$configThis
默认配置public $config;
private $configThis;
结构
名称 | 类型 | 默认 | 描述 |
---|---|---|---|
type | string | mysql | 数据库类型 |
host | string | 服务器 | |
name | string | 数据库名 | |
user | string | 用户名 | |
pass | string | 密码 | |
charset | string | utf8 | 字符编码 |
prefix | string | ginkgo_ | 表名前缀 |
debug | bool | false | 是否打开数据库调试 |
port | int | 3306 | 端口 |
$paramType
默认参数类型protected $paramType;
结构
名称 | 类型 | 默认 | 描述 |
---|---|---|---|
bool | PDO 类预定义常量 | PDO::PARAM_BOOL | 布尔值 |
int | PDO 类预定义常量 | PDO::PARAM_INT | 整数 |
str | PDO 类预定义常量 | PDO::PARAM_STR | 字符串 |
instance()
实例化方法public static function instance( [ array $config ] ) : object
参数
config
配置参数返回
config()
配置数据库public function config( [ array $config ] )
参数
config
配置参数返回
connect()
连接数据库public function connect( [ array $config ] )
参数
config
配置参数返回
exec()
执行原生 SQL(一般用于 插入、更新 或者 删除)public function exec( string $sql ) : int
参数
sql
SQL 语句返回
query()
执行原生 SQL(一般用于 插入、更新 或者 删除)public function query( string $sql ) : object
参数
sql
SQL 语句返回
lastInsertId()
取得新插入的 IDpublic function lastInsertId() : int
参数
返回
prepare()
预处理 SQL 语句public function prepare( string $sql [, mixed $bind [, mixed $value [, string $type ]]] ) : object
参数
返回
execute()
执行预处理 SQL 语句public function execute( [ mixed $bind [, mixed $value [, string $type [, bool $reset = true ]]]] ) : object
参数
返回
distinct()
是否查询不重复的记录public function distinct( [ bool $bool = true ] ) : object
参数
bool
是否查询不重复的记录返回
paginate()
分页public function paginate( [ int $perpage = 0 [, mixed $current = 'get' [, string $pageparam = 'page' [, int $pergroup = 0 ]]]] ) : object
参数
perpage
每页记录数:
数值型,为 0 表示采用系统默认设置
current
当前页码:
混合型,默认为 get
可能的值
值 | 描述 |
---|---|
get | 用 get 方法获取页码 |
post | 用 post 方法获取页码 |
整数 | 当前页码 |
pageparam
分页参数名:
字符型
pergroup
每组页数
数值型
返回
fetchSql()
是否获取 SQL 语句public function fetchSql( [ bool $bool = true ] ) : object
参数
bool
是否获取 SQL 语句返回
getRowCount()
取得影响行数public function getRowCount() : int
参数
返回
getRow()
取得当前行数据public function getRow() : mixed
参数
返回
getResult()
取得结果public function getResult( [ bool $all = true [, int $type = PDO::FETCH_ASSOC ]] ) : mixed
参数
all
是否获取全部数据type
取得类型
可能的值
值 | 描述 |
---|---|
PDO::FETCH_ASSOC | 返回一个索引为结果集列名的数组 |
PDO::FETCH_BOTH | 返回一个索引为结果集列名和以 0 开始的列号的数组 |
PDO::FETCH_BOUND | 返回 true,并分配结果集中的列值给 PDOStatement::bindColumn() 方法绑定的 PHP 变量。 |
PDO::FETCH_CLASS | 返回一个请求类的新实例,映射结果集中的列名到类中对应的属性名。 |
PDO::FETCH_INT | 更新一个被请求类已存在的实例,映射结果集中的列到类中命名的属性 |
PDO::FETCH_LAZ | 结合使用 PDO::FETCH_BOTH 和 PDO::FETCH_OBJ,创建供用来访问的对象变量名 |
PDO::FETCH_NUM | 返回一个索引为以0开始的结果集列号的数组 |
PDO::FETCH_OBJ | 返回一个属性名对应结果集列名的匿名对象 |
返回
type
参数
setModel()
设置模型名public function setModel( string $model )
参数
model
模型名返回
setTable()
设置数据表名public function setTable( string $table )
参数
table
数据表名返回
getTable()
取得当前数据表名public function getTable() : string
参数
返回
setPk()
设置主键0.2.2
新增
public function setPk( string $pk )
参数
pk
主键名返回
getPk()
取得当前主键0.2.2
新增
public function getPk() : string
参数
返回
bind()
绑定参数public function bind( mixed $bind [, mixed $value [, string $type ]] ) : object
参数
返回
resetSql()
重置 SQL,所有 $_名称
类型的属性都将被重置public function resetSql()
参数
返回
fetchBind()
绑定处理protected function fetchBind( string $sql, mixed $bind [, mixed $value [, string $type ]] ) : string
参数
返回
bindProcess()
绑定处理private function bindProcess( scalar $param, scalar $value, [ string ] ) : bool
fetchBindProcess()
绑定处理(配合 fetchSql()
方法)private function fetchBindProcess( scalar $param, scalar $value, [ string $type ] ) : bool
参数
param
参数名称,必须为标量value
绑定值type
类型
可能的值
值 | 描述 |
---|---|
str(默认) | 字符串 |
int | 整数 |
float | 浮点数 |
double | 数字 |
bool | 布尔值 |
返回
getType()
绑定处理(配合 fetchSql()
方法)private function getType( scalar $value, [ string $type ] ) : string
参数
value
绑定值type
类型
可能的值
值 | 描述 |
---|---|
str(默认) | 字符串 |
int | 整数 |
float | 浮点数 |
double | 数字 |
bool | 布尔值 |
返回
dsnProcess()
根据配置进行 DSN 处理private function dsnProcess() : string
参数
返回
bind
绑定名称
支持两种类型:为字符串时表示占位符,为数组时表示批量绑定
value
绑定值
当 bind
为字符串时为必须,当 bind
为数组时自动忽略。
type
参数类型
为空时自动识别类型,当 bind
为数组时自动忽略。
可能的值
值 | 描述 |
---|---|
str(默认) | 字符串 |
int | 整数 |
float | 浮点数 |
double | 数字 |
bool | 布尔值 |