您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何在Laravel框架中使用查詢構造器,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Laravel 是一套簡潔、優雅的PHP Web開發框架。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構建一個完美的網絡APP,而且每行代碼都可以簡潔、富于表達力。
NO.1查詢構造器新增數據
1.最基本的新增
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur1() { $bool = DB::table('student')//table指的是一個數據表,而括號里的('student')則指的是一個名為student的數據表 ->insert( ['name' => 'Rarin','age' =>16] ); echo "<pre>"; print_r($bool); echo "</pre>"; } }
ok,然后他會返回一個數字“1”,返回數字“1”則證明他已經新建了一條數據。
2.獲取一個新增的數據id
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur1() { $bool = DB::table('student') ->insertGetId( ['name'=>'Shen' , 'age'=>'16'] ); echo "<pre>"; print_r($bool); echo "</pre>"; } }
然后他會彈出相對應的id值,我的id值是2,所以他會顯示一個數字“2”。
3.新增多條數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur1() { $bool = DB::table('student') ->insert([ ['name'=>'Chen','age'=>18], ['name'=>'He','age'=>16] ]); var_dump($bool); } }
為了和上面的區分一下,我把print_r換成了var_dump,他會輸出成一個true,證明新增成功了。
NO.2查詢構造器修改數據
1.修改一條數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur2() { $upt = DB::table('student') ->where('id',3) ->update(['age'=>20]); echo "<pre>"; print_r($upt); echo "</pre>"; } }
那么,他會輸出一個數字1,代表的是影響的行數是一行。
2.自增某條數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur2() { $upt = DB::table('student') ->increment('age'); echo "<pre>"; print_r($upt); echo "</pre>"; } }
結果,他會輸出為4,因為我一共有四行數據,所以他影響到了四行數據,自增了1(在這里要說明一下,沒有給他賦值的時候他默認值為1)
那么我們又要如何給他附上值呢?代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur2() { $upt = DB::table('student') ->increment('age',2);//在這里,我們指定他自增的值為2 echo "<pre>"; print_r($upt); echo "</pre>"; } }
那么,他輸出的值照樣是4,證明影響了四個行數,然后去查看的時候,可以發現每個數據的年齡都大了2歲
3.自減某條數據
自減的默認值和設置值的操作步驟與自增一致,唯一不同的就是關鍵字從increment轉換成了decrement。
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur2() { $upt = DB::table('student') ->decrement('age'); echo "<pre>"; print_r($upt); echo "</pre>"; } }
然后他會返回一個受影響行數的值,我這里有四個行數受到了影響,所以返回4
4.根據某個條件進行自增(自減同理)
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur2() { $upt = DB::table('student') ->where('id',1) ->increment('age'); echo "<pre>"; print_r($upt); echo "</pre>"; } }
因為受影響的數據只有id是為1的數據,所以他會返回數字1,證明受影響的行數只有一行,自減同理,不過多介紹
自減的時候修改其他字段(自增同理)
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur2() { $upt = DB::table('student') ->where('id',3) ->decrement('age',3,['name' => 'ChenChai']); echo "<pre>"; print_r($upt); echo "</pre>"; } }
他會返回一個受影響的行數值
NO.3查詢構造器刪除數據
1.刪除某條數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur3() { $dlt = DB::table('student') ->where('id',4)//當id為4的時候 ->delete(); echo "<pre>"; print_r($dlt); echo "</pre>"; } }
他會返回一個數字1,表示刪除的數據共有1行。
2.根據某個值刪除多條數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur3() { $dlt = DB::table('student') ->where('id','>=',2)//當id大于等于2的時候 ->delete(); echo "<pre>"; print_r($dlt); echo "</pre>"; } }
他會輸出相對應被刪除幾條數據的數字,我這里刪除了2條數據,所以他返回一個2
NO.4查詢構造器查詢數據
1.get方式獲取所有的數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { $slt = DB::table('student') ->get(); dd($slt); } }
2.first方式
獲取第一條數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { $slt = DB::table('student') ->first(); dd($slt); } }
顯示的結果如下:
重新排序
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { $slt = DB::table('student') ->orderBy('id','desc') ->first(); dd($slt); } }
結果如下:
數據表如下:
3.where方式
插入一條數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { $slt = DB::table('student') ->where('id','>',1)//當id大于1的時候 ->get(); dd($slt); } }
結果如下:
插入多條數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { $slt = DB::table('student') ->whereRaw('id > ? and age = ?',[1,19])//當id大于1的時候,并且age等于191的時候 ->get(); dd($slt); } }
4.pluck方式
他只返回某個值,以數組的形式
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { $slt = DB::table('student') ->pluck('name'); dd($slt); } }
結果如下:
5.lists方式
作用和pluck方式差不多,但唯一不同的就是,他可以指定返回的下標是多少
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { $slt = DB::table('student') ->lists('name','id');//指定返回的下標是和name相對應的id dd($slt); } }
6.select方式
你可以用它指定輸出相對應的值,而不會像get方式一樣把所有無關緊要的值也輸出出來
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { $slt = DB::table('student') ->select('name','id','age') ->get(); dd($slt); } }
結果不做多介紹,只要簡單的理解為指定查找即可
7.chunk方式
這個一般是用在數據過多的時候,為了流暢,設定每次輸出多少條數據
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { DB::table('student') ->chunk(1,function($slt){ echo "<pre>"; print_r($slt); echo "</pre>"; }); } }
如果你只需要查詢一次,只需要添加一個return false即可。
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur4() { DB::table('student') ->chunk(1,function($slt){ echo "<pre>"; print_r($slt); echo "</pre>"; return false; }); } }
但是一般這種情況都是你滿足了某個條件后就不再執行,所以我們往匿名函數里增加一個if判斷語句來判斷再return即可
NO.5查詢構造器聚合函數
1.count函數
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur5() { $num = DB::table('student') ->count(); print_r($num); } }
他這個函數是輸出數據有幾條記錄,我這里數據有2條記錄,所以他會輸出一個2
2.max函數
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur5() { $num = DB::table('student') ->max('age'); print_r($num); } }
返回數據里某個數據的最大值
3.min函數
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur5() { $num = DB::table('student') ->min('age'); print_r($num); } }
與max同理
4.avg函數
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur5() { $num = DB::table('student') ->avg('age'); print_r($num); } }
返回年齡的平均值
5.sum函數
代碼如下:
namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SController extends Controller { public function qur5() { $num = DB::table('student') ->sum('age'); print_r($num); } }
關于如何在Laravel框架中使用查詢構造器就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。