Heim >PHP-Framework >Denken Sie an PHP >ThinkPHP-Datenbankoperationsabfrageereignisse, Transaktionsoperationen, Überwachung von SQL

ThinkPHP-Datenbankoperationsabfrageereignisse, Transaktionsoperationen, Überwachung von SQL

藏色散人
藏色散人nach vorne
2021-02-01 11:01:062924Durchsuche

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;
});

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);
});
 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();
}
 

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen