首頁 >php教程 >PHP开发 >PHP開發框架Laravel資料庫操作方法總結

PHP開發框架Laravel資料庫操作方法總結

高洛峰
高洛峰原創
2016-12-27 10:27:211459瀏覽

一、讀/寫連接

有時您可能想要使用一個SELECT語句的資料庫連接,,另一個用於插入、更新和刪除語句。 Laravel使這微風,將始終使用正確的連接是否使用原始查詢,查詢生成器或雄辯的ORM。

如何讀取/寫入連接應該配置,讓我們看看這個例子:

'mysql' => array('read' => array('host' => '192.168.1.1'),'write' => array('host' => '196.168.1.2'),'driver' => 'mysql','database' =>'database','username' => 'root','password' => '','charset' => 'utf8','collation' => 'utf8_unicode_ci','prefix' => '')

注意,兩個鍵添加到配置陣列:讀和寫。這兩個鍵有數組值包含一個關鍵:主機。其餘的讀寫資料庫選項從主mysql連接將合併後的陣列。所以,我們只需要將物品放入讀取和寫入數組如果我們希望覆蓋主要數組中的值。所以,在這種情況下,192.168.1.1將被用作“讀”連接,while192.168.1.2將被用作“寫”連接。資料庫憑證、前綴、字元集和所有其他選項在主mysql數組將跨兩個共享連接。

二、執行查詢

一旦你已經配置了資料庫連線,你可以使用DB執行查詢類別。

執行一個Select查詢

$results = DB::select('select * from users where id = ?', array(1));

結果的選擇方法總是傳回一個陣列。


運行一個Insert語句

 DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));

運行一個更新語句

  DB::update('update users set votes = 100 where name = ?', array('John'));

運行一個Delete語句

DB::delete('delete from users');

ete:update和delete:update和delete:update和delete:update的影響操作。

運行一個通用聲明

DB::statement('drop table users');

查詢事件監聽

你可以查詢事件監聽使用DB::聽方法:

DB::listen(function($sql, $bindings, $time){ //});

三、資料庫事務

  運行在一個資料庫事務的一組事務:

 DB::transaction(function(){ DB::table('users')->update(array('votes' 
=> 1)); DB::table('posts')->delete();});

注意:在事務拋出的任何異常關閉將導致自動事務將回滾

有時你可能需要開始一個事務:

DB::beginTransaction();

你可以通過回滾事務回滾方法:

DB::rollback();

最後,您可以透過提交方法:提交一個事務

DB::commit();

四、訪問連接

當使用多個連接,你可以訪問它們通過DB::連接方法:

$users = DB::connection('foo')->select(...);

你也可以訪問原始的、潛在的PDO實例:

$pdo = DB::connection()->getPdo();

有時你可能需要重新連接到一個給定的資料庫:

DB::reconnect('foo');

如果你需要斷開從給定的資料庫將超過底層PDO實例'smax_connections限制,使用斷開連接方法:

DB::disconnect('foo');

五、查詢日誌

預設情況下,Laravel日誌保存在記憶體的所有查詢運行當前的請求。然而,在某些情況下,例如當插入的行數,這可能會導致應用程式使用多餘的記憶體。停用日誌,你可以使用disableQueryLog方法:

DB::connection()->disableQueryLog();

o得到一組執行的查詢,您可以使用getQueryLog方法:

$queries = DB::getQueryLog();

更多PHP開發框架Laravel資料庫操作方法總結相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn