回到最上方

文件

基本用法

設置

Laravel讓連線資料庫及執行查詢時變得相當的簡單,資料庫的相關設定存放在 app/config/db.php 檔案中,在這個檔案你可以定義你所有的資料庫連連線,並指定哪一個連線是預設的資料庫連線,所有支援的資料庫系統都寫在這個檔案中。

Laravel支援四個資料庫系統: MySQL 、 Postgres 、 SQLite 及 SQL Server。

執行查詢

完成資料庫連線的設定後,你就可以使用 DB 類別進行資料庫的查詢了。

執行 Select 語法

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

select 方法都會回傳一個陣列 (array) 的結果

執行 Insert 語法

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

執行 Update 語法

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

執行 Delete 語法

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

注意: updatedelete 語法將會回傳在這個操作中,共影響了幾筆資料的結果

執行一般語法

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

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

Listening For Query Events

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

資料庫交易

你可以使用 transaction 方法,去執行一組資料庫交易集合的操作語法:

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

    DB::table('posts')->delete();
});

存取連線

你可以使用 DB::connection 方法,去使用數個不同的資料庫連線:

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

你也可以使用 PDO 實例去存取資料:

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

有時你可能需要重新連結資料庫:

DB::reconnect('foo');

查詢紀錄

預設的情況下, Laravel 會將目前 HTTP 請求中,所執行過的查詢紀錄存放在記憶體中,在一些情況下,像是增加 (Insert) 大量的資料時,這樣可能會造成應用程式使用過多多餘的記憶體資源,所以你可以使用 disableQueryLog 方法去關閉紀錄查詢到記憶體的動作:

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

討論