日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

laravel数据库相关操作

發(fā)布時間:2023/12/15 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。