openlss / lib-db
带有辅助函数的PDO包装库
0.0.15
2013-04-09 21:24 UTC
Requires
- php: >=5.3.2
- openlss/func-mda: ~0.0.1
README
带有辅助函数的PDO包装库
Db类跟踪查询次数并可以调试查询。它将为插入/更新查询自动生成SQL。
用法
//connect Db::_get()->setConfig($dbconfig)->connect(); //execute a fetch $result = Db::_get()->fetch('SELECT * FROM `table` WHERE `col` = ?',array($col));
参考
对PDO的调用
参考中未显示的任何函数都将直接传递给PDO
单例信息
Db可以用作单例,并且建议用作单例以重复使用相同的PDO实例。
如果需要多个连接,请使用自定义方法来维护实例。
($this) Db::setConfig($config)
设置数据库系统的配置。
接受以下结构的数组
$config = array( 'driver' => 'mysql' ,'database' => 'database_name' ,'host' => 'server_host' ,'port' => 'server_port' ,'user' => 'username' ,'password' => 'password' );
($this) Db::connect()
将使用当前配置并连接
(int) Db::getQueryCount()
返回当前查询次数
(bool) Db::close()
关闭打开的PDO实例(如果有的话)
(array) Db::prepWhere($pairs,$type='WHERE')
准备用于查询的WHERE字符串
- $pairs 数组中的子句可以是以下4种格式之一
- 'field-name' => array($bool='AND',$operator='=',$value)
- 'field-name' => array($operator='=',$value) //bool默认为AND
- 'field-name' => array($operator) //bool默认为AND,value默认为NULL
- 'field-name' => $value //bool默认为AND,operator默认为=
- 注意:使用Db::IS_NULL和Db::IS_NOT_NULL作为null值运算符
- $type 指定字符串的开始默认为'WHERE'
- 返回一个数组,成员包括
- [0] 生成的WHERE子句;编译后可用于PDO::prepare,包括前导空格(即可用)
- [n] 值数组;可用于PDO::execute
(int) Db::insert($table,$params=array(),$update_if_exists=false)
使用给定的参数插入到表中
当$update_if_exists设置为TRUE时,它将执行INSERT OR UPDATE查询。
(bool) Db::update($table,$keys=array(),$params=array())
更新数据库中的记录
- $table 要更新的表
- $keys 与prepWhere兼容的配对
- $params 包含要更新的name=>value对的数组
(result) Db::fetch($stmt,$params=array(),$throw_exception=Db::NO_EXCEPTIONS,$except_code=null,$flatten=Db::NO_FLATTEN)
从查询中获取单行并返回结果
- $stmt SQL查询
- $params 绑定到查询的参数
- $throw_exception 当设置为Db::EXCEPTIONS时,在找不到结果时抛出异常
- $except_cde 与异常一起抛出的代码
- $flatten 当设置为Db::FLATTEN时,将返回特定列的值数组
(array result) Db::fetchAll($stmt,$params=array(),$throw_exception=Db::NO_EXCEPTIONS,$except_code=null,$flatten=Db::NO_FLATTEN)
与fetch相同,但返回结果数组