PHP開発フレームワークLaravelのデータベース操作方法まとめ

高洛峰
リリース: 2016-12-27 10:27:21
オリジナル
1381 人が閲覧しました

1. 読み取り/書き込み接続

場合によっては、あるデータベース接続を SELECT ステートメントに使用し、別のデータベース接続を挿入、更新、および削除ステートメントに使用したい場合があります。 Laravel を使用するとこれが簡単になり、生のクエリ、クエリ ビルダー、または Eloquent 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' => '')
ログイン後にコピー

読み取りと書き込みという 2 つのキーが設定配列に追加されることに注意してください。どちらのキーにも、ホストという 1 つのキーを含む配列値があります。メインの mysql 接続からの残りの読み取りおよび書き込みデータベース オプションは、マージされた配列になります。したがって、メイン配列の値を上書きしたい場合は、読み取り配列と書き込み配列に項目を入れるだけで済みます。したがって、この場合、192.168.1.1 は「読み取り」接続として使用され、192.168.1.2 は「書き込み」接続として使用されます。メインの mysql 配列内のデータベース資格情報、プレフィックス、文字セット、およびその他すべてのオプションは、両方の接続間で共有されます。

2. クエリを実行します

データベース接続を構成したら、DB 実行クエリ クラスを使用できるようになります。

選択クエリを実行する

$results = DB::select('select * from users where id = ?', array(1));
ログイン後にコピー

結果の選択メソッドは常に配列を返します。


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');
ログイン後にコピー

注: update ステートメントと delete ステートメントによって返される行の数は、操作に影響します。

一般的なステートメントを実行する

DB::statement('drop table users');
ログイン後にコピー

イベント リスナーをクエリする

DB::listening メソッドを使用してイベント リスナーをクエリすることができます:

DB::listen(function($sql, $bindings, $time){ //});
ログイン後にコピー

3. データベース トランザクション

データベース トランザクションで一連の操作を実行するには、以下を使用できます。トランザクション メソッド :

 DB::transaction(function(){ DB::table('users')->update(array('votes' 
=> 1)); DB::table('posts')->delete();});
ログイン後にコピー

注: トランザクションのシャットダウン中にスローされた例外により、自動トランザクションがロールバックされます

場合によっては、トランザクションを開始する必要がある場合があります :

DB::beginTransaction();
ログイン後にコピー

ロールバック メソッド :

DB::rollback();
ログイン後にコピー
を使用してトランザクションをロールバックできます。

最後に、 commit メソッドを通じてトランザクションを送信できます:

DB::commit();
ログイン後にコピー

4. 接続にアクセスします

複数の接続を使用する場合、DB::connection メソッドを通じてアクセスできます:

$users = DB::connection('foo')->select(...);
ログイン後にコピー

元の接続にもアクセスできます、基礎となる PDO インスタンス:

$pdo = DB::connection()->getPdo();
ログイン後にコピー

特定のデータベースに再接続する必要がある場合があります:

DB::reconnect('foo');
ログイン後にコピー

基礎となる PDO インスタンスの smax_connections 制限を超える特定のデータベースから切断する必要がある場合は、切断メソッドを使用します:

DB::disconnect('foo');
ログイン後にコピー

5. クエリログ

デフォルトでは、Laravel は現在のリクエストを実行しているすべてのクエリをメモリに記録します。ただし、多数の行を挿入する場合など、場合によっては、アプリケーションが過剰なメモリを使用する可能性があります。ログを無効にするには、disableQueryLog メソッドを使用できます:

DB::connection()->disableQueryLog();
ログイン後にコピー

o 実行されたクエリのセットを取得するには、getQueryLog メソッドを使用できます:

$queries = DB::getQueryLog();
ログイン後にコピー

PHP 開発フレームワーク Laravel データベース操作方法まとめ関連記事の詳細は、ご注目くださいPHP中国語ウェブサイトへ!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!