1. 程式人生 > >TP5基礎——03 查詢構造器

TP5基礎——03 查詢構造器


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');