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
]);
无
返回值: 返回PDO对象。
$this->db->getPdo();
查询选择。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
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"])
取总数选择。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
table | string | 是 | 表。 |
fields | mixed | 否 | 字段字符串或者数组,默认* |
返回值: Db对象。
$this->db->count('public.user');
$this->db->count('public.user', "id");
$this->db->count('public.user', ["id"]);
插入数据。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
table | string | 是 | 表。 |
fields | array | 是 | 插入数据 |
返回值: Db对象。
$this->db->insert('public.user', ["name"=>"test","time"=>"2018-12-21"]);
插入数据。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
table | string | 是 | 表。 |
fields | array | 是 | 插入数据(多个) |
返回值: Db对象。
$this->db->batchInsert('public.user', [["name"=>"test1","time"=>"2018-12-21"],["name"=>"test2","time"=>"2018-12-22"]]);
更新数据。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
table | string | 是 | 表。 |
fields | array | 是 | 更新数据 |
返回值: Db对象。
$this->db->update('public.user', ["name"=>"test55","time"=>"2018-12-24"]);
删除数据。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
table | string | 是 | 表。 |
返回值: Db对象。
$this->db->delete('public.user');
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 | string | 是 | in条件。 |
fields | array | 是 | 条件数据 |
返回值: Db对象。
$this->db->select('public.user', ["id", "name","time"])->in("id in(?)", [3,4]);
sql查询。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
sql | string | 是 | sql语句。 |
fields | array | 否 | 绑定数据 |
返回值: Db对象。
$this->db->sql("select * from public.user where id=?", [3]);
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 | string | 是 | 排序条件。 |
返回值: Db对象。
$this->db->sql("select * from public.user")->in("name in(?)", ["test","test55"])->order("id desc");
group条件。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
group | string | 是 | group条件。 |
返回值: Db对象。
$this->db->sql("select * from public.user")->in("name in(?)", ["test","test55"])->group("name");
order条件。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
having | string | 是 | having条件。 |
返回值: Db对象。
$this->db->sql("select * from public.user")->in("name in(?)", ["test","test55"])->having("name is not null");
执行sql。
无
返回值: Pdo State对象。
$this->db->select('public.user', ["id", "name","time"])->limit(0, 1)->execute()->fetch();
取全部数据。
无
返回值: Db对象。
$this->db->select('public.user', ["id", "name","time"])->order("id desc")->limit(0, 10)->all();
取一行数据。
无
返回值: Db对象。
$this->db->select('public.user', ["id", "name","time"])->order("id desc")->limit(0, 10)->row();
取第一个字段数据。
无
返回值: Db对象。
$this->db->select('public.user', ["id", "name","time"])->order("id desc")->limit(0, 10)->cell(); // 返回id值;
取当前插入数据id。
无
返回值: Db对象。
echo $this->db->insert('public.user', ["name"=>"test","time"=>"2018-12-21"])->lastId();
取当前操作影响的数据数量。
无
返回值: Db对象。
echo $this->db->delete('public.user')->where("id=:id", [":id"=>"4"])->affectedRows();
开始数据库事务。
无
返回值: Db对象。
$this->db->beginTransaction();
开始数据库事务。
无
返回值: Db对象。
$this->db->beginTransaction();
判断是否在数据库事务中。
无
返回值: boolean。
echo $this->db->inTransaction();
提交保存事务。
无
返回值: boolean。
$this->db->commit();
回滚取消事务。
无
返回值: boolean。
$this->db->rollBack();
打印当前sql语句。
无
返回值: db对象。
$this->db->print();
取数据库执行sql历史及性能(紧调试环境下自动记录)。
无
返回值: array。
echo $this->db->history();
示范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();