Postgresql数据库 Gene\Db\Pgsql

Postgresql数据库 Gene\Db\Pgsql

  • 介绍

    Gene\Db\Pgsql 二次封装PDO类,提供一系列友好的操作函数,加强orm能力,支持链式操作,简化、规范数据库模型代码。

    注入配置实例: ###

    
      //数据库类注入配置
      $config->set("db", [
          'class' => '\Gene\Db\Pgsql',
          'params' => [[
          'dsn' => 'pgsql:host=10.5.5.30;port=5432;dbname=test',
          'username' => 'dev',
          'password' => ''
              ]],
          'instance' => true
      ]);
  • getPdo

    返回值: 返回PDO对象。

    实例:

    
      $this->db->getPdo();
  • select

    查询选择。

    参数:

    参数 类型 是否必填 注释
    table string 表。
    fields mixed 字段字符串或者数组,默认*

    返回值: Db对象。

    实例:

    
      $this->db->select('public.user');
      $this->db->select('public.user', "id,name,time");
      $this->db->select('public.user', ["id", "name","time"])
  • count

    取总数选择。

    参数:

    参数 类型 是否必填 注释
    table string 表。
    fields mixed 字段字符串或者数组,默认*

    返回值: Db对象。

    实例:

    
      $this->db->count('public.user');
      $this->db->count('public.user', "id");
      $this->db->count('public.user', ["id"]);
  • insert

    插入数据。

    参数:

    参数 类型 是否必填 注释
    table string 表。
    fields array 插入数据

    返回值: Db对象。

    实例:

    
      $this->db->insert('public.user', ["name"=>"test","time"=>"2018-12-21"]);
  • batchInsert

    插入数据。

    参数:

    参数 类型 是否必填 注释
    table string 表。
    fields array 插入数据(多个)

    返回值: Db对象。

    实例:

    
      $this->db->batchInsert('public.user', [["name"=>"test1","time"=>"2018-12-21"],["name"=>"test2","time"=>"2018-12-22"]]);
  • update

    更新数据。

    参数:

    参数 类型 是否必填 注释
    table string 表。
    fields array 更新数据

    返回值: Db对象。

    实例:

    
      $this->db->update('public.user', ["name"=>"test55","time"=>"2018-12-24"]);
  • delete

    删除数据。

    参数:

    参数 类型 是否必填 注释
    table string 表。

    返回值: Db对象。

    实例:

    
      $this->db->delete('public.user');
  • where

    where查询。

    参数:

    参数 类型 是否必填 注释
    where string array
    fields array 变量数据

    返回值: Db对象。

    实例:

    
      // 方式一:
      $this->db->select('public.user', ["id", "name","time"])->where("id=:id and name=:name",[":name"=>"test1", ":id"=>5]);
      $this->db->update('public.user', ["name"=>"test55","time"=>"2018-12-24"])->where("id=?", [4]);
      // 方式二:
      $where = ['id'=>array([62,63], 'in' , 'and'),'name'=>['%test','like', 'or']];
      $this->db->select('public.user', ["id", "name","time"])->where($where);
      // 方式三(括号用法):
      $params['title'] = ['%' . $search['title'] . '%', 'like', 'and', '('];
      $params['name'] = ['%' . $search['title'] . '%', 'like', 'or', ')'];
      $this->db->select('user', ["id", "name","time"])->where($where);
      // 方式四(括号用法):
      $params[] = "(";
      $params['title'] = ['%' . $search['title'] . '%', 'like', 'and'];
      $params['name'] = ['%' . $search['title'] . '%', 'like', 'or'];
      $params[] = ")";
      $this->db->select('user', ["id", "name","time"])->where($where);
  • in

    删除数据。

    参数:

    参数 类型 是否必填 注释
    in string in条件。
    fields array 条件数据

    返回值: Db对象。

    实例:

    
      $this->db->select('public.user', ["id", "name","time"])->in("id in(?)", [3,4]);
  • sql

    sql查询。

    参数:

    参数 类型 是否必填 注释
    sql string sql语句。
    fields array 绑定数据

    返回值: Db对象。

    实例:

    
      $this->db->sql("select * from public.user where id=?", [3]);
  • limit

    limit条件。

    参数:

    参数 类型 是否必填 注释
    start int 开始位置或者数量。
    num int 数量。

    返回值: Db对象。

    实例:

    
      $this->db->sql("select * from public.user")->in("name in(?)", ["test","test55"])->limit(1);
      $this->db->sql("select * from public.user")->in("name in(?)", ["test","test55"])->limit(0, 1);
  • order

    order条件。

    参数:

    参数 类型 是否必填 注释
    order string 排序条件。

    返回值: Db对象。

    实例:

    
      $this->db->sql("select * from public.user")->in("name in(?)", ["test","test55"])->order("id desc");
  • group

    group条件。

    参数:

    参数 类型 是否必填 注释
    group string group条件。

    返回值: Db对象。

    实例:

    
      $this->db->sql("select * from public.user")->in("name in(?)", ["test","test55"])->group("name");
  • having

    order条件。

    参数:

    参数 类型 是否必填 注释
    having string having条件。

    返回值: Db对象。

    实例:

    
      $this->db->sql("select * from public.user")->in("name in(?)", ["test","test55"])->having("name is not null");
  • execute

    执行sql。

    参数:

    返回值: Pdo State对象。

    实例:

    
      $this->db->select('public.user', ["id", "name","time"])->limit(0, 1)->execute()->fetch();
  • all

    取全部数据。

    参数:

    返回值: Db对象。

    实例:

    
      $this->db->select('public.user', ["id", "name","time"])->order("id desc")->limit(0, 10)->all();
  • row

    取一行数据。

    参数:

    返回值: Db对象。

    实例:

    
      $this->db->select('public.user', ["id", "name","time"])->order("id desc")->limit(0, 10)->row();
  • cell

    取第一个字段数据。

    参数:

    返回值: Db对象。

    实例:

    
      $this->db->select('public.user', ["id", "name","time"])->order("id desc")->limit(0, 10)->cell(); // 返回id值;
  • lastId

    取当前插入数据id。

    参数:

    返回值: Db对象。

    实例:

    
      echo $this->db->insert('public.user', ["name"=>"test","time"=>"2018-12-21"])->lastId();
  • affectedRows

    取当前操作影响的数据数量。

    参数:

    返回值: Db对象。

    实例:

    
      echo $this->db->delete('public.user')->where("id=:id", [":id"=>"4"])->affectedRows();
  • beginTransaction

    开始数据库事务。

    参数:

    返回值: Db对象。

    实例:

    
      $this->db->beginTransaction();
  • beginTransaction

    开始数据库事务。

    参数:

    返回值: Db对象。

    实例:

    
      $this->db->beginTransaction();
  • inTransaction

    判断是否在数据库事务中。

    参数:

    返回值: boolean。

    实例:

    
      echo $this->db->inTransaction();
  • commit

    提交保存事务。

    参数:

    返回值: boolean。

    实例:

    
      $this->db->commit();
  • rollBack

    回滚取消事务。

    参数:

    返回值: boolean。

    实例:

    
      $this->db->rollBack();
  • print

    打印当前sql语句。

    参数:

    返回值: db对象。

    实例:

    
      $this->db->print();
  • history

    取数据库执行sql历史及性能(紧调试环境下自动记录)。

    参数:

    返回值: array。

    实例:

    
      echo $this->db->history();
  • 综合demo

    示范db类的操作语句。

    实例:

    
      $this->db->count('public.user', "id")->order("id desc")->limit(0, 1)->all();
      $this->db->select('public.user', ["id", "name","time"])->order("id desc")->limit(0, 1)->all();
      $this->db->select('public.user', ["id", "name","time"])->limit(0, 1)->execute()->fetch();
      $this->db->select('public.user', ["id", "name","time"])->where("id=:id and name=:name",[":name"=>"test1", ":id"=>5])->row();
      $this->db->beginTransaction();
      $this->db->insert('public.user', ["name"=>"test","time"=>"2018-12-21"])->lastId();
      $this->db->batchInsert('public.user', [["name"=>"test1","time"=>"2018-12-21"],["name"=>"test2","time"=>20181222]])->affectedRows();
      $this->db->update('public.user', ["name"=>"test55","time"=>"2018-12-24"])->where("id=?", "4")->affectedRows();
      $this->db->delete('public.user')->where("id=:id", [":id"=>"4"])->affectedRows();
      $this->db->update('public.user', ["name"=>"test55","time"=>"2018-12-24"])->where("id=?", null)->in(" and id in(?)", [3,4])->affectedRows();
      $this->db->commit();
      $this->db->select('public.user', ["id", "name","time"])->where("id=?", ["3"])->in(" and id in(?)", [3,4])->row();
      $this->db->sql("select * from public.user")->in("name in(?)", ["test","test55"])->order("id desc")->limit(0, 1)->print()->row();
      $where = ['id'=>array([62,63], 'in' , 'and'),'name'=>['test','like', 'or']];
      $this->db->select('public.user', ["id", "name","time"])->where($where)->where(" and id=?", 61)->in(" and name in(?)", "test")->print()->all();
      $this->db->select('public.user', ["id", "name","time"])->where("id=?", ["61"])->in(" and name in(?)", ["test"])->print()->row();
      $this->db->history();