数据库核心类
常量 | |
---|---|
Database::TYPE_MYSQL |
string(5) "MySQL" |
Database::TYPE_MYSQLI |
string(6) "MySQLI" |
Database::TYPE_MONGO |
string(5) "Mongo" |
Database::TYPE_SQLITE |
string(6) "SQLite" |
Database::TYPE_POSTGRE |
string(7) "Postgre" |
Database::DEFAULT_CONFIG_NAME |
string(7) "default" |
API - Module_Database
- Database::instance - 返回数据库实例化对象
- Database::__construct - new Database('default');
- Database::__destruct
- Database::driver - 获取驱动引擎对象
- Database::config - 获取当前配置数组
- Database::close_connect - 关闭连接
- Database::query - 执行SQL查询
- Database::table_prefix - 返回当前表前缀
- Database::compile - 解析为SQL语句
- Database::get - 获取数据
- Database::get_one - 获取一条数据
- Database::last_query - 最后查询的SQL语句
- Database::update - 更新数据
- Database::insert - 插入数据
- Database::delete - 删除数据
- Database::count_records - 统计指定条件的数量
- Database::replace - 替换数据 replace into
- Database::merge - 替换数据 replace into
- Database::transaction - 获取事务对象
- Database::auto_use_master - 设置是否一直在主数据库上查询
- Database::is_auto_use_master - 是否一直用主数据库查询
- Database::create_database - 创建一个数据库
- Database::parse_dsn - 解析DSN路径格式
- Database::close_all_connect - 关闭全部数据库链接
继承自父类的方法和变量
- Database_QueryBuilder::get_builder - 获取Builder配置
- Database_QueryBuilder::set_builder - 设置Builder信息
- Database_QueryBuilder::distinct - 构成查询 SELECT DISTINCT
- Database_QueryBuilder::select - select(c1, c2, c3,......)
- Database_QueryBuilder::select_array - Choose the columns to select from, using an array.
- Database_QueryBuilder::select_max - 查询最大值
- Database_QueryBuilder::select_min - 查询平均值
- Database_QueryBuilder::select_avg - 查询平均值
- Database_QueryBuilder::select_sum - 查询总和
- Database_QueryBuilder::select_adv - 高级查询方式
- Database_QueryBuilder::columns - Set the columns that will be inserted.
- Database_QueryBuilder::values - 加入多条数据
- Database_QueryBuilder::set - 为update,insert设置数据
- Database_QueryBuilder::value - Set the value of a single column.
- Database_QueryBuilder::value_increment - 数据递增
- Database_QueryBuilder::value_decrement - 数据递减
- Database_QueryBuilder::table - Sets the table to update.
- Database_QueryBuilder::from - from(tableA,tableB,...)
- Database_QueryBuilder::join - Adds addition tables to "JOIN ...".
- Database_QueryBuilder::on - Adds "ON ..." conditions for the last created JOIN statement.
- Database_QueryBuilder::group_by - group_by(c1,c2,c3,.....)
- Database_QueryBuilder::having - Alias of and_having()
- Database_QueryBuilder::and_having - Creates a new "AND HAVING" condition for the query.
- Database_QueryBuilder::or_having - Creates a new "OR HAVING" condition for the query.
- Database_QueryBuilder::having_open - Alias of and_having_open()
- Database_QueryBuilder::and_having_open - Opens a new "AND HAVING (...)" grouping.
- Database_QueryBuilder::or_having_open - Opens a new "OR HAVING (...)" grouping.
- Database_QueryBuilder::having_close - Closes an open "AND HAVING (...)" grouping.
- Database_QueryBuilder::and_having_close - Closes an open "AND HAVING (...)" grouping.
- Database_QueryBuilder::or_having_close - Closes an open "OR HAVING (...)" grouping.
- Database_QueryBuilder::offset - Start returning results after "OFFSET ..."
- Database_QueryBuilder::reset - 重设数据
- Database_QueryBuilder::in
- Database_QueryBuilder::notin
- Database_QueryBuilder::where - Alias of and_where()
- Database_QueryBuilder::and_where - Creates a new "AND WHERE" condition for the query.
- Database_QueryBuilder::or_where - Creates a new "OR WHERE" condition for the query.
- Database_QueryBuilder::where_open - Alias of and_where_open()
- Database_QueryBuilder::and_where_open - Opens a new "AND WHERE (...)" grouping.
- Database_QueryBuilder::or_where_open - Opens a new "OR WHERE (...)" grouping.
- Database_QueryBuilder::where_close - Closes an open "AND WHERE (...)" grouping.
- Database_QueryBuilder::and_where_close - Closes an open "AND WHERE (...)" grouping.
- Database_QueryBuilder::or_where_close - Closes an open "OR WHERE (...)" grouping.
- Database_QueryBuilder::order_by - Applies sorting with "ORDER BY ..."
- Database_QueryBuilder::limit - Return up to "LIMIT ..." results
- Database_QueryBuilder::like - 返回 "LIKE ..."
- Database_QueryBuilder::or_like - 返回 "OR LIKE ..."
- Database_QueryBuilder::mod - 返回 "$column MOD $mod = $value"
- Database_QueryBuilder::or_mod - 返回 "OR $column MOD $mod = $value"
- Database_QueryBuilder::use_index - 使用指定索引
- Database_QueryBuilder::force_index - 强制使用指定索引
- Database_QueryBuilder::ignore_index - 或略指定索引
- Database_QueryBuilder::recovery_last_builder - 恢复最后查询或reset时的Builder数据
- Database_QueryBuilder::expr_value - 创建一个不会被过滤处理的字符串
返回数据库实例化对象
支持 Database::instance('mysqli://root:123456@127.0.0.1/myqee/');
的方式
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$config_name |
string |
默认值为 Database::DEFAULT_CONFIG_NAME | null |
Database
new Database('default');
支持 new Database('mysqli://root:123456@127.0.0.1/myqee/');
的方式
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$config_name |
string |
默认值为 Database::DEFAULT_CONFIG_NAME | null |
void
获取驱动引擎对象
Database_Driver_MySQLI
获取当前配置数组
array
关闭连接
执行SQL查询
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$sql |
string |
$sql | |
$as_object |
boolean |
返回对象名称 默认false,即返回数组 | bool false |
$use_master |
boolean |
是否使用主数据库,不设置则自动判断,对更新的SQL无效 | null |
Database_Driver_MySQLI_Result
返回当前表前缀
string
解析为SQL语句
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$type |
string |
Select,insert,update,delect,replace | string(6) "select" |
$use_master |
boolean |
当$type=select此参数有效,设置true则使用主数据库,设置false则使用从数据库,不设置则使用默认 | null |
string
获取数据
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$as_object |
boolean |
返回对象名称 默认false,即返回数组 | bool false |
$use_master |
boolean |
是否使用主数据库,不设置则自动判断 | null |
Database_Driver_MySQLI_Result
获取一条数据
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$as_object |
boolean |
返回对象名称 默认false,即返回数组 | bool false |
$use_master |
boolean |
是否使用主数据库,不设置则自动判断 | null |
mixed
最后查询的SQL语句
string
更新数据
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$table |
string |
$table | null |
$value |
array |
$value | null |
$where |
array |
$where | null |
int
作用的行数插入数据
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$table |
string |
$table | null |
$value |
array |
$value | null |
删除数据
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$table |
string |
表名称 | null |
$where |
array |
条件 | null |
integer
操作行数统计指定条件的数量
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$table |
mixed |
Table name string or array(query, alias) | null |
$where |
unknown |
null |
integer
替换数据 replace into
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$table |
string |
$table | null |
$value |
array |
$value | null |
$where |
array |
$where | null |
替换数据 replace into
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$table |
string |
$table | null |
$value |
array |
$value | null |
$where |
array |
$where | null |
获取事务对象
Database_Transaction
事务对象设置是否一直在主数据库上查询
这样设置后,select会一直停留在主数据库上,直到$this->auto_use_master(false)后才会自动判断
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$auto_use_master |
boolean |
$auto_use_master | bool true |
Database
是否一直用主数据库查询
boolean
创建一个数据库
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$database |
string |
$database | |
$charset |
string |
编码,不传则使用数据库连接配置相同到编码 | null |
$collate |
string |
整理格式 | null |
boolean
解析DSN路径格式
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$dsn |
string |
DSN string |
array
关闭全部数据库链接
记录慢查询
boolean
获取Builder配置
可用 $builder = & $obj->get_builder(); 获取到内存指针
array
设置Builder信息
// 设置一样的builder
$db->from('mytable')->where('id>', 10)->limit(10)->order_by('id', 'DESC');
// 获取当前builder
$builder = $db->get_builder();
// 执行查询
$data1 = $db->where('type', 1)->get()->as_array();
echo $db->last_query(); //SELECT * FROM `mytable` WHERE `id` > 10 AND `type` = '1' ORDER BY `id` DESC LIMIT 10
// 将前面获取的builder重新设置回去
$db->set_builder($builder);
// 再次执行另外一个附加条件的查询
$data2 = $db->where('type', 3)->get()->as_array();
echo $db->last_query(); //SELECT * FROM `mytable` WHERE `id` > 10 AND `type` = '3' ORDER BY `id` DESC LIMIT 10
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$builder |
array |
Builder信息数组,不必完整的,建议通过get_builder()获取后设置 |
Database
构成查询 SELECT DISTINCT
如果传的是字符串则构造出 SELECT DISTINCT(test
) as test
这样的查询(MySQL)
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$value |
boolean |
Enable or disable distinct columns | bool true |
Database
select(c1, c2, c3,......)
如果查询是SELECT * 则不需要设置,系统会自动处理
$db->select('id', 'username')->from('members')->get()->as_array();
echo $db->last_query(); //SELECT `id`, `username` FROM `members`;
$db->select('db1.id', 'db2.username')->from('members as db1')->join('mydb as db2')->on('db1.id', 'db2.mid')->get()->as_array();
echo $db->last_query(); //SELECT `db1`.`id`, `db2`.`username` FROM `members` AS `db1` JOIN ON `db1`.`id` = `db2`.`mid`;
// 使用Database::expr_value()方法可以传入一个不被解析的字符串
$db->select(Database::expr_value('SUM("id") as `id`'))->from('members')->get()->as_array();
echo $db->last_query(); //SELECT SUM("id") as `id` FROM `members`;
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$columns |
mixed |
Column name or array($column, $alias) or object |
Database
Choose the columns to select from, using an array.
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$columns |
array |
List of column names or aliases |
Database
查询最大值
$db->select_max('test')->from('db')->group_by('class_id')->get()->as_array();
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$conlumn |
string |
$conlumn |
Database
查询平均值
$db->select_min('test')->from('db')->group_by('class_id')->get()->as_array();
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$conlumn |
string |
$conlumn |
Database
查询平均值
$db->select_avg('test')->from('db')->group_by('class_id')->get()->as_array();
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$conlumn |
string |
$conlumn |
Database
查询总和
$db->select_sum('test')->from('db')->group_by('class_id')->get()->as_array();
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$conlumn |
string |
$conlumn |
Database
高级查询方式
需要相应接口支持, 目前支持MongoDB的aggregation框架Group查询:$sum,$max,$min,$avg,$last,$first等,详情见 http://docs.mongodb.org/manual/reference/aggregation/group/ MySQL支持sum,max,min,svg等
$db->select_adv('test','max'); //查询最大值 $db->seleve_adv('test','sum',3); //查询+3的总和
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$conlumn |
string |
$conlumn | |
$type |
string |
$opt | |
$opt1 |
unknown |
null | |
$opt2 |
unknown |
null |
Database
Set the columns that will be inserted.
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$columns |
array |
Column names |
Database
加入多条数据
// 例1
$v1 = array('k1'=>1,'k2'=>1);
$v2 = array('k1'=>2,'k2'=>1);
$v3 = array('k1'=>3,'k2'=>1);
$db->values($v1,$v2,$v3); //加入3行数据
// 例2
$values = array();
$values[] = array('k1'=>1,'k2'=>1);
$values[] = array('k1'=>2,'k2'=>1);
$values[] = array('k1'=>3,'k2'=>1);
$db->values($values); //加入3行数据,等同上面的效果
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$values |
array |
Values list |
Database
为update,insert设置数据
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$pairs |
array |
Associative (column => value) list |
Database
Set the value of a single column.
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
mixed |
Table name or array($table, $alias) or object | |
$value |
mixed |
Column value | |
$op |
string |
=|+|- | string(1) "=" |
Database
数据递增
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
string |
$column | |
$value |
int |
$value |
Database
数据递减
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
string |
$column | |
$value |
int |
$value |
Database
Sets the table to update.
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$table |
mixed |
Table name or array($table, $alias) or object |
Database
from(tableA,tableB,...)
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$tables |
mixed |
Table name or array($table, $alias) or object |
Database
Adds addition tables to "JOIN ...".
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$table |
mixed |
Column name or array($column, $alias) or object | |
$type |
string |
Join type (LEFT, RIGHT, INNER, etc) | null |
Database
Adds "ON ..." conditions for the last created JOIN statement.
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$c1 |
mixed |
Column name or array($column, $alias) or object | |
$c2 |
string |
Logic operator | |
$op |
mixed |
Column name or array($column, $alias) or object | string(1) "=" |
Database
group_by(c1,c2,c3,.....)
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$columns |
mixed |
Column name or array($column, $alias) or object |
Database
Alias of and_having()
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
mixed |
Column name or array($column, $alias) or object | |
$value |
string |
Logic operator | null |
$op |
mixed |
Column value | string(1) "=" |
Database
Creates a new "AND HAVING" condition for the query.
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
mixed |
Column name or array($column, $alias) or object | |
$value |
string |
Logic operator | null |
$op |
mixed |
Column value | string(1) "=" |
Database
Creates a new "OR HAVING" condition for the query.
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
mixed |
Column name or array($column, $alias) or object | |
$value |
string |
Logic operator | null |
$op |
mixed |
Column value | string(1) "=" |
Database
Alias of and_having_open()
Database
Opens a new "AND HAVING (...)" grouping.
Database
Opens a new "OR HAVING (...)" grouping.
Database
Closes an open "AND HAVING (...)" grouping.
Database
Closes an open "AND HAVING (...)" grouping.
Database
Closes an open "OR HAVING (...)" grouping.
Database
Start returning results after "OFFSET ..."
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$number |
integer |
Starting result number |
Database
重设数据
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$key |
$key |
不传则全部清除,可选参数 select,select_adv,from,join,where,group_by,having,parameters,set,columns,values,where,index,order_by,distinct,limit,offset,table,last_join,join,on | null |
Database
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
string |
$key | |
$value |
array |
$value | |
$no_in |
unknown |
bool false |
Database
Alias of and_where()
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
mixed |
Column name or array($column, $alias) or object | |
$value |
string |
Logic operator | null |
$op |
mixed |
Column value | string(1) "=" |
Database
Creates a new "AND WHERE" condition for the query.
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
mixed |
Column name or array($column, $alias) or object | |
$value |
string |
Logic operator | |
$op |
mixed |
Column value | string(1) "=" |
Database
Creates a new "OR WHERE" condition for the query.
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
mixed |
Column name or array($column, $alias) or object | |
$value |
string |
Logic operator | |
$op |
mixed |
Column value | string(1) "=" |
Database
Alias of and_where_open()
Database
Opens a new "AND WHERE (...)" grouping.
Database
Opens a new "OR WHERE (...)" grouping.
Database
Closes an open "AND WHERE (...)" grouping.
Database
Closes an open "AND WHERE (...)" grouping.
Database
Closes an open "OR WHERE (...)" grouping.
Database
Applies sorting with "ORDER BY ..."
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
mixed |
Column name or array($column, $alias) or object | |
$direction |
string |
Direction of sorting | string(3) "ASC" |
Database
Return up to "LIMIT ..." results
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$number |
integer |
Maximum results to return | |
$offset |
integer |
Maximum results from offset | null |
Database
返回 "LIKE ..."
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
string |
$column | |
$value |
string |
$value | null |
Database
返回 "OR LIKE ..."
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
string |
$column | |
$value |
string |
$value | null |
Database
返回 "$column MOD $mod = $value"
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
string |
$column | |
$mod_dig |
int |
$mod_dig | |
$value |
int |
$value |
Database
返回 "OR $column MOD $mod = $value"
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$column |
string |
$column | |
$mod_dig |
int |
$mod_dig | |
$value |
int |
$value | |
$op |
unknown |
string(1) "=" |
Database
使用指定索引
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$index |
string |
Database
强制使用指定索引
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$index |
string |
Database
或略指定索引
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$index |
string |
Database
恢复最后查询或reset时的Builder数据
此方法等同于在执行查询前先获取 $builder = $db->get_builder();
然后执行SQL完毕后把原先的builder重新设置 $db->set_builder($builder);
$db->from('mydb')->where('id', 1)->get()->as_array(); // 执行查询
$db->recovery_last_builder(); // 恢复
等同于下面代码,但明显上面代码更优雅
$db->from('mydb')->where('id', 1);
$builder = $db->get_builder(); // 在执行前获取builder设置
$db->get()->as_array(); // 执行查询
$db->set_builder($builder); // 将前面获取的builder重新复原
例子一
$count = $db->from('mydb')->where('id', 10, '>')->count_records();
// 在执行count_records()时,所有的builder数据将会被清空
echo $db->last_query(); // SELECT COUNT(1) AS `total_row_count` FROM `mydb` WHERE `id` > '10'
// 恢复builder
$db->recovery_last_builder();
$db->limit(20)->order_by('id', 'DESC')->get()->as_array();
echo $db->last_query(); // SELECT * FROM `mydb` WHERE `id` > '10' ORDER BY `id` DESC LIMIT 10
Database
创建一个不会被过滤处理的字符串
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
$string |
string |
Expression |
Database_Expression