1. Lese-/Schreibverbindung
Manchmal möchten Sie möglicherweise eine Datenbankverbindung für SELECT-Anweisungen und eine andere für Einfüge-, Aktualisierungs- und Löschanweisungen verwenden. Laravel macht dies zum Kinderspiel und verwendet immer die richtige Verbindung, egal ob Sie Rohabfragen, den Abfrage-Builder oder das Eloquent ORM verwenden.
Wie die Lese-/Schreibverbindung konfiguriert werden sollte, schauen wir uns dieses Beispiel an:
'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' => '')
Beachten Sie, dass dem Konfigurationsarray zwei Schlüssel hinzugefügt werden: Lesen und Schreiben. Beide Schlüssel haben Array-Werte, die einen Schlüssel enthalten: Host. Die restlichen Lese- und Schreiboptionen für die Datenbank der Haupt-MySQL-Verbindung bilden das zusammengeführte Array. Wir müssen also nur Elemente in die Lese- und Schreibarrays einfügen, wenn wir die Werte im Hauptarray überschreiben möchten. In diesem Fall wird also 192.168.1.1 als „Lese“-Verbindung verwendet, während 192.168.1.2 als „Schreib“-Verbindung verwendet wird. Datenbankanmeldeinformationen, Präfix, Zeichensatz und alle anderen Optionen im Haupt-MySQL-Array werden von beiden Verbindungen gemeinsam genutzt.
2. Führen Sie die Abfrage aus
Sobald Sie die Datenbankverbindung konfiguriert haben, können Sie die DB-Run-Query-Klasse verwenden.
Ausführen einer Select-Abfrage
$results = DB::select('select * from users where id = ?', array(1));
Die Ergebnisauswahlmethode gibt immer ein Array zurück.
Führen Sie eine Insert-Anweisung aus
DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));
Führen Sie eine Update-Anweisung aus
DB::update('update users set votes = 100 where name = ?', array('John'));
Führen Sie eine Delete-Anweisung aus
DB::delete('delete from users');
Hinweis: Die Anzahl der von Aktualisierungs- und Löschanweisungen zurückgegebenen Zeilen wirkt sich auf den Vorgang aus.
Führen Sie eine generische Anweisung aus
DB::statement('drop table users');
Ereignis-Listener abfragen
Sie können Ereignis-Listener mit der DB::listening-Methode abfragen:
DB::listen(function($sql, $bindings, $time){ //});
Drei, Datenbanktransaktion
Um eine Reihe von Vorgängen in einer Datenbanktransaktion auszuführen, können Sie die Transaktionsmethode verwenden:
DB::transaction(function(){ DB::table('users')->update(array('votes' => 1)); DB::table('posts')->delete();});
Hinweis: Jede beim Herunterfahren der Transaktion ausgelöste Ausnahme führt zur automatischen Transaktion zurückzugeben Roll
Manchmal müssen Sie möglicherweise eine Transaktion starten:
DB::beginTransaction();
Sie können die Transaktion über die Rollback-Methode zurücksetzen:
DB::rollback();
Endlich Sie kann dies über die Commit-Methode tun: Eine Transaktion festschreiben
DB::commit();
4. Auf Verbindungen zugreifen
Wenn Sie mehrere Verbindungen verwenden, können Sie über die DB::Connection-Methode auf diese zugreifen:
$users = DB::connection('foo')->select(...);
Sie können auch auf die ursprüngliche, zugrunde liegende PDO-Instanz zugreifen:
$pdo = DB::connection()->getPdo();
Manchmal müssen Sie möglicherweise erneut eine Verbindung zu einer bestimmten Datenbank herstellen:
DB::reconnect('foo');
Wenn Sie müssen die Verbindung zu einer bestimmten Datenbank trennen. Die Datenbank überschreitet das max_connections-Limit der zugrunde liegenden PDO-Instanz. Verwenden Sie die Trennmethode:
DB::disconnect('foo');
5. Abfrageprotokolle
Standardmäßig sind Laravel-Protokolle Wird im Speicher für alle derzeit ausgeführten Abfragen gespeichert. In einigen Fällen, beispielsweise beim Einfügen einer großen Anzahl von Zeilen, kann dies jedoch dazu führen, dass die Anwendung überschüssigen Speicher belegt. Um das Protokoll zu deaktivieren, können Sie die Methode „disableQueryLog“ verwenden:
DB::connection()->disableQueryLog();
o Um einen Satz ausgeführter Abfragen zu erhalten, können Sie die Methode „getQueryLog“ verwenden:
$queries = DB::getQueryLog();
Mehr PHP-Entwicklungsframework Betriebsmethoden der Laravel-Datenbank Um verwandte Artikel zusammenzufassen, beachten Sie bitte die chinesische PHP-Website!