ThinkPHP-Datenbankoperationsabfrageereignisse, Transaktionsoperationen, Überwachung von SQL

藏色散人
Freigeben: 2021-02-03 18:49:06
nach vorne
2858 Leute haben es durchsucht

Die folgende Tutorial-Kolumne von thinkphp stellt Ihnen die Abfrageereignisse, Transaktionsvorgänge und die Überwachung von SQL von ThinkPHP-Datenbankvorgängen vor. Ich hoffe, dass es für Freunde in Not hilfreich ist!

Query Events

Query Events (v5.0.4+)

starten Sie aus Version 5.0.4+, der Curd -Operation -Ereignis -Unterstützung der Datenbank -Operation, einschließlich:

Abfrageereignisse unterstützen nur die Methoden Suchen, Auswählen, Einfügen, Aktualisieren und Löschen.

Ereignis registrieren

Verwenden Sie die folgende Methode, um ein Datenbankabfrageereignis zu registrieren

Query::event('after_insert','callback');
Query::event('before_select',function($options,$query){    // 事件处理
    return $result;
});
Nach dem Login kopieren

Transaktionsvorgang

Wenn Sie die Transaktionsverarbeitung verwenden, muss das Datenbankmodul die Transaktionsverarbeitung unterstützen. Beispielsweise unterstützt MyISAM von MySQL keine Transaktionsverarbeitung und erfordert die Verwendung der InnoDB-Engine.

Verwenden Sie die Transaktionsmethode, um Datenbanktransaktionen durchzuführen. Zum Beispiel:

Transaktionsverarbeitung automatisch steuern

Transaktionen manuell steuern

Db::transaction(function(){
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);
});
Nach dem Login kopieren
 Achten Sie auf die Transaktion. Stellen Sie dabei sicher, dass Ihre Datenbankverbindungen gleich sind.

SQL hören

Wenn Sie den Debug-Modus der Datenbank aktivieren, können Sie alle von der Datenbank ausgeführten SQL-Vorgänge mit der folgenden Methode überwachen:

// 启动事务Db::startTrans();try{
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);    // 提交事务
    Db::commit();
} catch (\Exception $e) {    // 回滚事务
    Db::rollback();
}
Nach dem Login kopieren
 

Standardmäßig, wenn keine Überwachung erfolgt Vorgänge werden registriert. Diese SQL-Ausführungen werden nach verschiedenen Protokolltypen protokolliert.

Das obige ist der detaillierte Inhalt vonThinkPHP-Datenbankoperationsabfrageereignisse, Transaktionsoperationen, Überwachung von SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage