DuckPhp\Db\Db

简介

伪组件 Db 类是DuckPhp 自带的数据库类。 是 App::Db() 和 M::Db() 的实现。

选项

公开方法

public function init($options = [], $context = null)

  1. 初始化

public function fetchAll($sql, …$args)

  1. 运行SQL并获得所有行

public function fetch($sql, …$args)

  1. 运行SQL并获得单一行

public function fetchColumn($sql, …$args)

  1. 运行SQL并获得单个数据

public function execute($sql, …$args)

  1. 运行SQL 返回 true false

protected function check_connect()

  1. 用于 override ,连接的设置。

public function close()

public function PDO($new=null)

  1. 获得/设置 相关 PDO 对象。

public function setBeforeQueryHandler($handler)

  1. query 前执行。($handler)($this,$sql, ...$args)

public function quote($string)

  1. 编码

public function buildQueryString($sql, …$args)

  1. 合并带参数的sql.

public function rowCount()

  1. 获得行数

public function lastInsertId()

  1. 获得插入的ID.

public function fetchObjectAll($sql, …$args)

  1. 运行SQL并获得所有行(对象数组)

public function fetchObject($sql, …$args)

  1. 运行SQL并获得单一行(对象形式)

public function setResultClass($class)

  1. 设置返回的类,配合 fetchObject fetchObjectAll 使用。

DbAdvance 的方法

public function quoteIn($array) public function quoteSetArray($array) public function qouteInsertArray($array) public function findData($table_name, $id, $key = ‘id’) public function insertData($table_name, $data, $return_last_id = true) public function deleteData($table_name, $id, $key = ‘id’, $key_delete = ‘is_deleted’) public function updateData($table_name, $id, $data, $key = ‘id’)

详解

Db()

Db 类的用法

Db close(); //关闭, 你一般不用关闭,系统会自动关闭 PDO($new=null); //获取/设置 PDO 对象 quote($string); fetchAll($sql, …$args); fetch($sql, …$args); fetchColumn($sql, …$args); execute($sql, …$args); // 执行某条sql ,不用 exec , execute 是为了兼容其他类。

示例

使用数据库,在 设置里正确设置 database_list 这个数组,包含多个数据库配置 然后在用到的地方调用 DuckPhp::Db($tag=null) 得到的就是 Db 对象,用来做各种数据库操作。 $tag 对应 $setting[‘database_list’][$tag]。默认会得到最前面的 tag 的配置。

你不必担心每次框架初始化会连接数据库。只有第一次调用 DuckPhp::Db() 的时候,才进行数据库类的创建。

示例如下

  1. <?php
  2. use DuckPhp\DuckPhp;
  3. require_once('../vendor/autoload.php');
  4. $options=[];
  5. $options['override_class']=''; // 示例文件不要被子类干扰。
  6. $options['skip_setting_file']=true; // 不需要配置文件。
  7. $options['error_exception']=true; // 使用默认的错误视图
  8. $options['database_list']=[[
  9. 'dsn'=>'mysql:host=127.0.0.1;port=3306;dbname=DnSample;charset=utf8;',
  10. 'username'=>'root',
  11. 'password'=>'123456',
  12. ]]; // 这里用选项里的
  13. DuckPhp::RunQuickly($options,function(){
  14. $sql="select 1+? as t";
  15. $data=M::Db()->fetch($sql,2);
  16. DuckPhp::var_dump($data);
  17. DuckPhp::exit(0);
  18. });

方法索引

public function init($options = [], $context = null) protected function check_connect() public function close() public function PDO($new) public function setBeforeQueryHandler($handler) public function quote($string) public function buildQueryString($sql, …$args) public function fetchAll($sql, …$args) public function fetch($sql, …$args) public function fetchColumn($sql, …$args) public function execute($sql, …$args) public function rowCount() public function lastInsertId()