TP5基礎——03 查詢構造器
阿新 • • 發佈:2018-12-22
Db類基本使用
我們在使用Db類時,需要引入think\Db
。
使用原生SQL
Db::query() 查詢操作
Db::excute() 插入、更新、刪除操作
Db::getLastInsID( ) 獲取最後一行記錄的ID
Db:getNumRows( ) 被影響記錄條數
示例
1. 查詢操作(引數繫結)
Db::query(
"select * from banner_item where banner_id=?",[$id]
);
2. 插入操作
Db: excute(
"insert tbl_name VALUE(value...)"
);
3. 更新操作(引數繫結)
Db::execute(
"update think_user set name=:name where status=:status",
['name' => 'thinkphp', 'status' => 1]
);
4. 刪除操作
Db:excute(
"DELETE FROM tbl_name WHERE id > :id;",
['id'=>'10']
);
查詢構造器
第一步:選取表
Db:table( 表名 ) // 必須填寫完整的資料表名!!!
Db:name( 表名 ) // 如果指定了資料表字首,建議使用name
新增資料
1. 新增一條資料
// 返回新增成功的條數,通常是1
Db::name('user')
->insert($data);
或者
// 如果資料表裡沒有某些欄位,會丟擲異常
Db::name('user')
->data($data)
->insert();
2. 新增多條資料
// 返回新增成功的條數
$data = [
['foo' => 'bar', 'bar' => 'foo'],
['foo' => 'bar1', 'bar' => 'foo1'],
['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->insertAll($data);
或者
// 要確保欄位資訊正確
$data = [
['foo' => 'bar', 'bar' => 'foo'],
['foo' => 'bar1', 'bar' => 'foo1'],
['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->data($data)->insertAll();
刪除資料
// 根據主鍵刪除
Db::name('user')->delete(1);
// 條件刪除
Db::name('user')->where('id','<',10)->delete();
更新資料
update()
setInc(欄位,值) 欄位值遞增
setDec(欄位,值) 欄位值遞減
setField(欄位,值) 更新指定欄位值
示例
1. 普通更新欄位
// update傳入資料,返回影響條數
Db::name('user')
->where('id', 1)
->update(['name' => 'thinkphp']);
// data傳入資料
Db::name('user')
->where('id', 1)
->data(['name' => 'thinkphp'])
->update();
2. 欄位遞增
Db::name('user')
->where('id', 1)
->setInc('score');
3. 欄位遞減
Db::name('user')
->where('id', 1)
->setDec('score');
4. 更新指定欄位值
Db::name('user')
->where('id',1)
->setField('name', 'thinkphp');
查詢資料
find() 查詢一條記錄
findOrEmpty() 如果查詢不到資料,返回空陣列而不是null(5.1.23+版本)
select() 查詢多條記錄
value() 查詢某個欄位的值
column(‘列名’[,'索引欄位']) 查詢某個列的值
示例
1.查詢一條記錄
Db::name('user')->where('id',1)->find();
Db::name('user')->where('id',1)->findOrEmpty();
2.查詢多條記錄
Db::name('item')
->where('banner_id','=',$id)
->select();
3.查詢某個欄位
Db::name('user')->where('id',1)->value('name');
4.查詢某個列
Db::name('user')->where('status',1)->column('name');
// 查詢某個列,並且使用id欄位作為索引
Db::name('user')->where('status',1)->column('name','id');
聚合查詢
示例
1.統計欄位
Db::table('think_user')->count();
2.最值
Db::table('think_user')->max('score');
Db::table('think_user')->min('score');
3.平均值
Db::table('think_user')->avg('score');
4.總和
Db::table('think_user')->sum('score');