Heim  >  Artikel  >  Backend-Entwicklung  >  nginx – Transaktionen über phpmysql

nginx – Transaktionen über phpmysql

WBOY
WBOYOriginal
2016-08-04 09:20:591167Durchsuche

Problem: Ich habe festgestellt, dass die Transaktion, wenn sie nicht festgeschrieben oder zurückgesetzt wird, automatisch zurückgesetzt wird, nachdem die HTTP-Anfrage endet

Codebeispiel:

<code>$this->db->begin();

// 这时候user表这条记录就已经被锁住了。。。
$user = \Users::findFirst($id);
$user->name = '写锁啊!';
sleep(15);

$user->save();
return ;
</code>

Aber wenn diese Anfrage endet, kann dieser Datensatz in der Datenbank erneut bearbeitet werden. . .
Ich würde gerne fragen, ob es Nginx, FPM oder Phalcon ist, das automatisch PDO->rollback(); ??????

aufruft

Antwortinhalt:

Problem: Ich habe festgestellt, dass die Transaktion, wenn sie nicht festgeschrieben oder zurückgesetzt wird, automatisch zurückgesetzt wird, nachdem die HTTP-Anfrage endet

Codebeispiel:

<code>$this->db->begin();

// 这时候user表这条记录就已经被锁住了。。。
$user = \Users::findFirst($id);
$user->name = '写锁啊!';
sleep(15);

$user->save();
return ;
</code>

Aber wenn diese Anfrage endet, kann dieser Datensatz in der Datenbank erneut bearbeitet werden. . .
Ich würde gerne fragen, ob es Nginx, FPM oder Phalcon ist, das automatisch PDO->rollback(); ??????

aufruft

Der automatische Übermittlungsparameter AUTOCOMMIT von MySQL ist standardmäßig aktiviert, wenn in der Transaktion ein Commit-Befehl auftritt.
Wenn er über einen MySQL-Treiber in anderen Sprachen ausgeführt wird, nachdem die Anforderung beendet ist oder Timeout), MySQL Der Treiber führt automatisch ein ROLLBACK unverarbeiteter Transaktionen durch.

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