$email = DB::table('users')->where('name', 'John')->value('email');
Laravel學習-資料庫操作和查詢建構器的範例程式碼分享
最近小編在學習號稱世界最牛框架–Laravel。其實學習框架也就是學習框架的想法! 我想在我的部落格中記錄我在laravel學習中的一些心得,歡迎大家關注我的其他Github部落格和簡書,互相交流!
版本:Laravel 5.2
資料庫:mysql 5.7
php:php7.1
資料庫操作和查詢建構器
在Laravel中執行資料庫操作有兩種方式,一種是使用\DB
外觀物件的靜態方法直接執行sql查詢,另一個是使用Model類別的靜態方法(實際上也是Facade的實現,使用靜態存取方式存取Model的方法,內部採用了callStatic
魔術方法代理了對成員方法的存取。數組,數組中每一個值為一個
物件。的資料列
#$results = DB::select('select * from users where id = ?', [1]);foreach ($results as $res) { echo $res->name; }
從表中查詢單行/列
使用first方法傳回單行數據,該方法傳回的是一個stdClass物件<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$results = DB::select(&#39;select * from users where id = :id&#39;, [&#39;id&#39; => 1]);</pre><div class="contentsignin">登入後複製</div></div>
如果只需要一列的值,則可以使用value方法直接獲取單列的值
$users = DB::table('users')->get(); foreach ($users as $user) { var_dump($user->name); }
,則會停止後續的處理。
欄位值$user = DB::table('users')->where('name', 'John')->first(); echo $user->name;
pluck
函數有兩個參數$email = DB::table('users')->where('name', 'John')->value('email');
登入後複製
第一個參數為要查詢的列,第二個參數是每一列的key$email = DB::table('users')->where('name', 'John')->value('email');
DB::table('users')->chunk(100, function($users){ foreach ($users as $user) { // } });
查詢建構器也提供了一些聚集函數如
count,max,min,avg,sum
$titles = DB::table('roles')->pluck('title');foreach ($titles as $title) { echo $title; }
查詢指定的列
#
Collection pluck( string $column, string|null $key = null)
$roles = DB::table('roles')->pluck('title', 'name');foreach ($roles as $name => $title) { echo $title; }
查詢不同的結果distinct
#$users = DB::table('users')->count(); $price = DB::table('orders')->max('price'); $price = DB::table('orders')->where('finalized', 1)->avg('price');
表達式
#使用DB::raw方法可以將所需的sql片段,但是非常不建議使用該方法,用不好會產生sql注入
$users = DB::table('users')->select('name', 'email as user_email')->get();
$query = DB::table('users')->select('name');$users = $query->addSelect('age')->get();
#使用leftJoin方法執行左連接操作,參數和join一樣$users =
$users = DB::table('users')->distinct()->get();
高級Join方法#如果join方法的約束條件比較複雜,可以使用閉包函數的方式指定
$users = DB::table('users') ->select(DB::raw('count(*) as user_count, status')) ->where('status', '<>', 1) ->groupBy('status') ->get();
如果join約束中要使用列值與指定數組比較,則可以使用where和OrWhere方法<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$users = DB::table(&#39;users&#39;)
->join(&#39;contacts&#39;, &#39;users.id&#39;, &#39;=&#39;, &#39;contacts.user_id&#39;)
->join(&#39;orders&#39;, &#39;users.id&#39;, &#39;=&#39;, &#39;orders.user_id&#39;)
->select(&#39;users.*&#39;, &#39;contacts.phone&#39;, &#39;orders.price&#39;)
->get();</pre><div class="contentsignin">登入後複製</div></div>
Union操作
要使用union操作,可以先建立一個query,然後再使用union方法去綁定第二個query
DB::table('users') ->leftJoin('posts', 'users.id', '=', 'posts.user_id') ->get();
同樣,
unionAll方法也是可以使用的,參數與union相同。
Where查詢條件
<p style="margin-top: 7px;">DB::table('users')<br/> ->join('contacts', function ($join) {<br/> $join->on('users.id', '=', 'contacts.user_id')->orOn(...);<br/> })<br/> ->get();<br/></p>
以上是Laravel學習-資料庫操作和查詢建構器的範例程式碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Laravel郵件發送失敗時的退信代碼獲取方法在使用Laravel開發應用時,經常會遇到需要發送驗證碼的情況。而在實�...

在dcatadmin(laravel-admin)中如何實現自定義點擊添加數據的表格功能在使用dcat...

Laravel框架中Redis連接的共享與select方法的影響在使用Laravel框架和Redis時,開發者可能會遇到一個問題:通過配置...

在Laravel多租戶擴展包stancl/tenancy中自定義租戶數據庫連接使用Laravel多租戶擴展包stancl/tenancy構建多租戶應用時,...

LaravelEloquent模型檢索:輕鬆獲取數據庫數據EloquentORM提供了簡潔易懂的方式來操作數據庫。本文將詳細介紹各種Eloquent模型檢索技巧,助您高效地從數據庫中獲取數據。 1.獲取所有記錄使用all()方法可以獲取數據庫表中的所有記錄:useApp\Models\Post;$posts=Post::all();這將返回一個集合(Collection)。您可以使用foreach循環或其他集合方法訪問數據:foreach($postsas$post){echo$post->

在Laravel6項目中如何檢查Redis連接的有效性是一個常見的問題,特別是在項目依賴於Redis進行業務處理時。以下是...

Laravel數據庫遷移過程中出現類重複定義問題在使用Laravel框架進行數據庫遷移時,開發者可能會遇到“類已使用�...
