Heim > php教程 > PHP开发 > Hauptteil

Zusammenfassung der Datenbankbetriebsmethoden des PHP-Entwicklungsframeworks Laravel

高洛峰
Freigeben: 2016-12-27 10:27:21
Original
1411 Leute haben es durchsucht

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' => '')
Nach dem Login kopieren

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));
Nach dem Login kopieren

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'));
Nach dem Login kopieren

Führen Sie eine Update-Anweisung aus

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

Führen Sie eine Delete-Anweisung aus

DB::delete('delete from users');
Nach dem Login kopieren

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');
Nach dem Login kopieren

Ereignis-Listener abfragen

Sie können Ereignis-Listener mit der DB::listening-Methode abfragen:

DB::listen(function($sql, $bindings, $time){ //});
Nach dem Login kopieren

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();});
Nach dem Login kopieren

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();
Nach dem Login kopieren

Sie können die Transaktion über die Rollback-Methode zurücksetzen:

DB::rollback();
Nach dem Login kopieren

Endlich Sie kann dies über die Commit-Methode tun: Eine Transaktion festschreiben

DB::commit();
Nach dem Login kopieren

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(...);
Nach dem Login kopieren

Sie können auch auf die ursprüngliche, zugrunde liegende PDO-Instanz zugreifen:

$pdo = DB::connection()->getPdo();
Nach dem Login kopieren

Manchmal müssen Sie möglicherweise erneut eine Verbindung zu einer bestimmten Datenbank herstellen:

DB::reconnect('foo');
Nach dem Login kopieren

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');
Nach dem Login kopieren

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();
Nach dem Login kopieren

o Um einen Satz ausgeführter Abfragen zu erhalten, können Sie die Methode „getQueryLog“ verwenden:

$queries = DB::getQueryLog();
Nach dem Login kopieren

Mehr PHP-Entwicklungsframework Betriebsmethoden der Laravel-Datenbank Um verwandte Artikel zusammenzufassen, beachten Sie bitte die chinesische PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage