Laravel 的數據庫查詢構建器提供了一個方便、流暢的界面來創建和運行數據庫查詢。它可用於在您的應用程序中執行大多數數據庫操作,並適用於所有支持的數據庫系統。
Laravel 查詢構建器使用 PDO 參數綁定來保護您的應用程序免受 SQL 注入攻擊。無需清理作為綁定傳遞的字符串。
接續昨天,先在products的資料表新增了幾筆測試資料。
跟昨天一樣使用php artisan tinker
來操作
在tinker中輸入DB::table('products')->get();
他將會撈取所有products table的資料
>>> DB::table('products')->get()
=> Illuminate\Support\Collection {#3504
all: [
{#3499
+"id": 1,
+"code": "1",
+"name": "iphone",
+"price": 100,
+"quantity": 100,
+"created_at": null,
+"updated_at": null,
},
{#3505
+"id": 2,
+"code": "2",
+"name": "computer",
+"price": 1000,
+"quantity": 100,
+"created_at": null,
+"updated_at": null,
},
{#3503
+"id": 3,
+"code": "3",
+"name": "gamecard",
+"price": 50,
+"quantity": 100,
+"created_at": null,
+"updated_at": null,
},
{#3502
+"id": 4,
+"code": "4",
+"name": "EDIFIER",
+"price": 10000,
+"quantity": 100,
+"created_at": null,
+"updated_at": null,
},
],
}
可以來尋找價錢是1000元的商品名稱:
>>> DB::table('products')->where('price', '=',1000)->value('name');
=> "computer"
可以使用該pluck方法,將會返回自訂義鍵值:
>>> DB::table('products')->pluck('name','id')
=> Illuminate\Support\Collection {#3523
all: [
1 => "iphone",
2 => "computer",
3 => "gamecard",
4 => "EDIFIER",
],
}
>>>
找到商品數量:
>>> DB::table('products')->count();
=> 4
找到價格最貴商品:
>>> DB::table('products')->max('price');
=> 10000
如果不希望查詢到的是所有的列,那就可以使用select語句,自訂義回傳欄位
查詢所有商品及價格:
>>> DB::table('products')->select('name', 'quantity')->get();
=> Illuminate\Support\Collection {#3520
all: [
{#3522
+"name": "iphone",
+"quantity": 100,
},
{#3512
+"name": "computer",
+"quantity": 100,
},
{#3525
+"name": "gamecard",
+"quantity": 100,
},
{#3518
+"name": "EDIFIER",
+"quantity": 100,
},
],
}
先在資料庫加上一筆商品名稱重複資料
找到不重複的商品名稱:
>>> $users = DB::table('products')->select('name')->distinct()->get();
=> Illuminate\Support\Collection {#3510
all: [
{#3489
+"name": "iphone",
},
{#3511
+"name": "computer",
},
{#3507
+"name": "gamecard",
},
{#3515
+"name": "EDIFIER",
},
],
}
>>>
明天來寫Query Builder CRUD