Heim  >  Artikel  >  php教程  >  Zusammenfassung der Datenbankbetriebsmethoden des PHP-Entwicklungsframeworks Laravel

Zusammenfassung der Datenbankbetriebsmethoden des PHP-Entwicklungsframeworks Laravel

高洛峰
高洛峰Original
2016-12-27 10:27:211409Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn