Heim > Backend-Entwicklung > PHP-Tutorial > Lösung von Problemen, die bei PHP-Datenbanktransaktionen auftreten

Lösung von Problemen, die bei PHP-Datenbanktransaktionen auftreten

不言
Freigeben: 2023-04-05 20:14:02
nach vorne
2852 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Lösung von Problemen, die bei PHP-Datenbanktransaktionen auftreten. Er hat einen gewissen Referenzwert. Ich hoffe, dass er für Sie hilfreich ist.

Ein Problem wurde bei der Verwendung der PDO-Erweiterung von PHP entdeckt. Wenn die Verbindung zwischen PHP und MySQL getrennt wird, führt dies dazu, dass PHP direkt eine Warnausnahme aufzeichnet, anstatt sie direkt auszulösen Der Prozess zum Auslösen einer Ausnahme

ist wie folgt:

/**
 * 一个用户财产变更的场景下
 */

try {
    // 1. 开启事务

    /**
     * 2. 变更用户财产,增加财产变更的流水记录
     */

    // 3. 提交事务
} catch (\Exception $e) {
    // 4. 回滚事务

    // 5. 记错误日志

    // 6. 抛出异常
}

// 7. 发布用户财产变更的广播
Nach dem Login kopieren

Die oben genannten Vorgänge können einfach in fünf Kategorien unterteilt werden. Nach meinem bisherigen Verständnis ist der allgemeine Prozess zum Ausführen von Transaktionen ohne Ausnahmen wie oben geworfen Die Transaktion wurde erfolgreich übermittelt
Aber bis eines Tages eine Transaktion gestartet wurde. Während des Prozesses von 1-2 hängt die Datenbank dann direkt, wenn die Transaktion in Schritt 3 A übermittelt wird 🎜> Ebenenfehler ist direkt aufgetreten, warning keine Ausnahme wurde abgefangen "SQLSTATE[HY000]: General error: 2006 MySQL server has gone away" ,, daher haben andere Geschäftsparteien in den nachfolgenden Schritten von Schritt 7 die nicht übermittelte Transaktions-ID abgerufen und Statistiken erstellt, aber tatsächlich hat sich die Benutzereigenschaft nicht erhöht. Dies führte zu dem Problem

Als ich verwirrt war, schaute ich mir die Dokumentation an und fand einen Fehler, der es schon lange gab: https://bugs.php.net/bug.php?.. .

Später haben wir das Problem gelöst, indem wir vorübergehend

am Ort der Transaktionset_error_handler

konfiguriert haben

Das obige ist der detaillierte Inhalt vonLösung von Problemen, die bei PHP-Datenbanktransaktionen auftreten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.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