回覆列表
-
1 # 程式設計師小助手
-
2 # 老C說
首先 並沒有一丁點,一丁丁點,一丁丁丁點效能強的提升。反而還會帶來效能損耗。說這種orm會提升效能的統統都是放屁滿嘴放屁頭頂長瘡腳底流膿的才會說ORM有效能提升。
ok 再說其他的。
用Laravel這種開發框架或者是ORM只是為了統一開發規範,方便團隊開發和團隊管理。而且還有各種輪子可以直接拿來使用。還有豐富的擴充套件
比如laravel-admin 一個人1天做完管理後臺
orm 一次編碼同時相容oracle pgsql mysql。
這才是框架的目的。
-
3 # 洲連數碼
這個問題比較細,我不專業。
laravel是很好的php開發框架,輕量化,易上手,功能強大。
和資料庫的連線、查刪插改,這個不熟悉,不評價。可以去CSDN上查一查。
引言
我們推薦使用laravel的eloquent orm 模型操作資料庫表, 因為特性更為豐富,組裝更為靈活,在程式設計層面操作資料的來來去去非常直觀。 而有些場景不可避免地與原生互動,我們本期就來梳理一下DB門面相關的那些方法。
學習時間
系統提供了DB門面用於原生的SQL操作,在程式內引入下面的類:
use Illuminate\Support\Facades\DB;
該類的定義很簡單,標準的門面註冊方法:
class DB extends Facade { protected static function getFacadeAccessor() { return "db"; } }
僅實現了 getFacadeAccessor 方法,這些類處於同一個名稱空間下的 Facade.php 檔案內。
DB::statement("drop table users");
帶引數繫結的SQL查詢語句:
DB::select("select * from contacts where validated = ?", [1]);
或者使用鏈式操作,獲取所有滿足條件的記錄:
$users = DB::table("users")->get();
當然了,還有經常用到的多表聯合查詢,複雜的查詢過濾條件:
DB::table("users") ->join("contacts", function ($join) { $join->on("users.id", "=", "contacts.user_id")->where("contacts.type", "donor"); }) ->get();
CRUD
上一節是一些簡單示例,下面我們說一說增刪改查的用法。先說查詢語句, 如果在資料庫最佳化上做的比較好的一些SQL固定寫法,可以使用原生方法固化下來。 比如簡單的:
$users = DB::select("select * from users");
該方法會返回一個標準物件的集合。擴充套件一下,帶有查詢條件的SQL原生語句, 為了防止SQL注入,使用引數繫結的方式:
$usersOfType = DB::select("select * from users where type = ?", [$type]);
當然也可以使用PDO常用的方式佔位:
$usersOfType = DB::select("select * from users where type = :type", ["type" => $userType]);
插入新資料,其實與上述的帶有佔位符引數繫結的SQL查詢語句類似,只是SQL語法不同而已:
DB::insert("insert into contacts (name, email) values (?, ?)", ["salt", "[email protected]"]);
更新資料也是一樣的:
$countUpdated = DB::update("update contacts set status = ? where id = ?", [1, $id]);
$countDeleted = DB::delete("delete from contacts where archived = ?", [1]);
寫在最後
本文透過對laravel DB門面的增刪改查用法,向大家展示了基本的引數繫結的用法。 一般我們不推薦使用原生SQL語句操作資料庫,提倡大家把資料庫操作集中到模型層, 充分利用eloquent orm的效能。
Happy coding :-)