laravel数据库相关操作
生活随笔
收集整理的這篇文章主要介紹了
laravel数据库相关操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL查詢
配置好數據庫連接后,可以使用 DB facade 運行查詢。DB facade 為每種類型的查詢提供了方法:select、update、insert、delete 和 statement。
select查詢數據
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | use Illuminate\Support\Facades\DB; //select方法一 $users = DB::select('select * from users where active = ?', [1]); //(1)傳遞到 select 方法的第一個參數是一個原生的 SQL 查詢,而第二個參數則是傳遞需要綁定到查詢中的參數值。通常,這些是 where 子句約束的值。參數綁定提供了對防止 SQL 注入的保護。 //(2)select 方法將始終返回一個數組。數組中的每個結果都是一個PHP StdClass 對象,可以像下面這樣訪問結果的值: foreach ($users as $user) { echo $user->name; } //select方法二 $results = DB::select('select * from users where id = :id', ['id' => 1]); |
增刪改方法
| 1 2 3 4 5 6 7 8 9 10 11 12 | use Illuminate\Support\Facades\DB; //可以在 DB facade 上使用 insert 方法來執行 insert 語句。與 select 一樣 //該方法將原生 SQL 查詢作為其第一個參數,并將其綁定的數據作為第二個參數: DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']); //update 方法用于更新數據庫中的現有記錄。該方法會返回受該語句影響的行數: $affected = DB::update('update users set votes = 100 where name = ?', ['John']); //delete 方法用于刪除數據庫中記錄。與 update 一樣,會返回受該語句影響的行數: $deleted = DB::delete('delete from users'); |
laravel數據庫事務
可以在 DB facade 上使用 transaction 方法來運行數據庫事務中的一組操作。如果在事務 Closure 中發生了異常,事務將自動回滾。而如果 Closure 成功執行,事務將自動被提交。也就是說,使用數據庫事務,你就不需要在數據庫語句執行發生異常時手動回滾或提交。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // (1)如果在事務 Closure 中發生了異常,事務將自動回滾,否則事務自動提交 DB::transaction(function () { DB::table('users')->update(['votes' => 1]); DB::table('posts')->delete(); }); // (2)處理死鎖,第二個參數定義在發生死鎖時應該重新嘗試事務的次數。一旦嘗試次數都用盡了,就會拋出一個異常: DB::transaction(function () { DB::table('users')->update(['votes' => 1]); DB::table('posts')->delete(); }, 5); // (3)手動開始一個事務,并且能夠完全控制回滾和提交 DB::beginTransaction(); //可以通過 rollBack 方法回滾事務: DB::rollBack(); //最后記得要通過 commit 方法提交事務: DB::commit(); |
注意:DB facade 的事務方法也適用于 查詢語句構造器 和 Eloquent ORM 的事務。
總結
以上是生活随笔為你收集整理的laravel数据库相关操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gartner Magic Quadra
- 下一篇: 火山底下的岩浆网是这样的