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