openlss/lib-db

带有辅助函数的PDO包装库

0.0.15 2013-04-09 21:24 UTC

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相同,但返回结果数组