配置完資料庫連接,就可以使用DB類進行查詢了。
查詢
$results = DB::select('select * from users where id = ?', array(1));
select方法會以數組形式返回查詢結果。
插入
DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));
更新
DB::update('update users set votes = 100 where name = ?', array('John'));
刪除
DB::delete('delete from users');
注意:update和delete語句返回受影響的行數。
通用語句
DB::statement('drop table users');
監聽Query事件
DB::listen(function($sql, $bindings, $time)
{
//
});
資料庫事務
DB::transaction(function()
{
DB::table('users')->update(array('votes' => 1));
DB::table('posts')->delete();
});
注意:transaction閉包中的任何異常將會導致事務自動回滾。
有時候也許你想自己開啟事務:
DB::beginTransaction();
你也可以自己回滾事務:
DB::rollback();
最後,你可以通過commit方法提交事務:
DB::commit();
多個資料庫連接訪問
當使用多個資料庫連接時,可以通過DB::connection方法訪問它們:
$users = DB::connection('foo')->select(...);
你可以通過PDO實例訪問原生連接:
$pdo = DB::connection()->getPdo();
有時候你需要重連資料庫:
DB::reconnect('foo');
如果因為超出PDO實例的最大連接數限制而要斷開連接,使用disconnect方法:
DB::disconnect('foo');
查詢日誌
默認情況下,Laravel使用日誌記錄當前請求的所有資料庫查詢操作,但是某些時候,比如插入大量數據,會引起應用使用過量內存。為了關閉日誌,可以使用disableQuery方法:
DB::connection()->disableQueryLog();
獲取查詢日誌記錄,可以用過getQuery方法:
$queries = DB::getQueryLog();
B. Laravel/Lumen 中怎麼執行以下 SQL 語句
select '第'||b.num||『行』,第||instr(a.A||a.B||a.C||a.D||a.E,'1')|||'列' from table a, (select max(num) num ,max(id) id from (select rownum num,rowid id,A||B||C||D||E ABCDE from table) where ABCDE like 『%1%' and id
C. laravel怎麼寫sql語句
QueryBuilder類中有toSql()方法可以獲取sql語句的 比如: $sql = UserModel::query()->where('username','admin')->toSql(); dd($sql); //select * from user_table where username = 'admin'
D. laravel 怎麼調用mysql存儲過程
laravel並沒有提供直接調用存儲過程的實現,只能通過拼sql的方式調用存儲過程,比如:
DB::statement('call存儲過程名稱(參數)');
或者
DB::select('call存儲過程名稱(參數)');
E. laravel orm where 條件中 mysql函數 怎麼用
這種ORM,肯定會支持的一個功能就是 直接使用原生SQL。所以~ 懂了吧
--1.插入數據
DB::insert('insertintousers(id,name,email,password)values(?,?,?,?)',[1,'Laravel','[email protected]','123']);
--2.查詢語句
$user=DB::select('select*fromuserswhereid=?',[1]);
--我們還可以看到在執行查詢的時候使用了參數綁定,以避免SQL注入。除此之//外還可以使用命名綁定:
$user=DB::select('select*fromuserswhereid=:id',[':id'=>1]);
--3.更新語句
$affected=DB::update('updateuserssetname="LaravelAcademy"wherename=?',['Academy']);
--4.刪除語句
$deleted=DB::delete('deletefromusers');
但是這種使用MySQL函數,會導致不通用。這一點需要考慮一下~
F. laravel ORM怎麼列印出執行sql語句
aravel提供了3種操作資料庫方式:DBfacade(原始方式)、查詢構造器和EloquentORM。下面我將逐一講解。資料庫的配置文件在config目錄下的database.PHP里。打開這個文件,找到MySQL的配置項。這里有個env,它其實是調用了laravel根目錄下的.env文件,這個文件存儲了資料庫的配置信息。打開它。修改為項目的資料庫信息即可。請自行建一個資料庫,其中資料庫得包含vipinfo表,並且插入一些數據,以方便下面使用。表的結構如下圖。
G. laravel資料庫查詢,在資料庫裡面可以運行,在代碼裡面錯誤
在group by 後邊加多「,activity_scheles.title"
原因:sql基本語法錯誤,group by 後邊要跟select列名保持一致,mysql沒報錯可能是因為你關了ONLY_FULL_GROUP_BY這個sql_model
H. laravel5 如何查看最後一條sql語句
coposer 載入 laravel-debugbar