PHP開発フレームワークLaravel、フレームワークlaravelのデータベース操作方法まとめ
1. 読み取り/書き込み接続
場合によっては、あるデータベース接続を SELECT ステートメントに使用し、別のデータベース接続を挿入、更新、および削除ステートメントに使用したい場合があります。 Laravel を使用するとこれが簡単になり、生のクエリ、クエリ ビルダー、または Eloquent ORM を使用するかどうかに関係なく、常に正しい接続が使用されます。
読み取り/書き込み接続をどのように構成する必要があるか、次の例を見てみましょう:
コードをコピーします コードは次のとおりです:
'mysql' => array('read' => array('host' => '192.168.1.1'), 'write' => array('host' => '196.168.1.2'), 'ドライバー' =>'mysql','データベース' => 'ルート','パスワード' =>照合順序' => 'utf8_unicode_ci','プレフィックス' =>
読み取りと書き込みという 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('ユーザー (id, 名前) 値 (?, ?) に挿入', array(1, 'Dayle'));
更新ステートメントを実行する
コードをコピーします コードは次のとおりです:
DB::update('更新ユーザーは投票数 = 100、名前 = ?', array('John'));
削除ステートメントを実行します
コードをコピーします コードは次のとおりです:
DB::delete('ユーザーから削除');
注: update および delete ステートメントによって返される行の数は、操作に影響します。
一般的なステートメントを実行します
コードをコピーします コードは次のとおりです:
DB::statement('テーブルユーザーを削除');
クエリイベントモニタリング
DB::listening メソッドを使用してイベント リスナーをクエリできます:
コードをコピーします コードは次のとおりです:
DB::listen(function($sql, $bindings, $time){ //});
3. データベーストランザクション
データベース トランザクション内で一連の操作を実行するには、トランザクション メソッドを使用できます:
コードをコピーします コードは次のとおりです:
DB::transaction(function(){ DB::table('users')->update(array('votes'
)
=> 1)); DB::table('posts')->削除();});
注: トランザクションのシャットダウン中に例外がスローされると、自動トランザクションがロールバックされます
場合によっては、トランザクションを開始する必要がある場合があります:
コードをコピーします コードは次のとおりです:
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();
280907494 開発グループ、グループ内でこれをやっている人がたくさんいます。
次のデデカムに進む
http://www.bkjia.com/PHPjc/874114.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/874114.html技術記事 PHP 開発フレームワーク Laravel のデータベース操作方法、フレームワーク laravel の概要 1. 読み取り/書き込み接続 SELECT ステートメントにはデータベース接続を使用し、挿入、更新などには別のデータベース接続を使用したい場合があります。