Tom: TOCTTOU und ein paar Fragen zur Verhinderung

Beitrag lesen

Hello,

Deshalb locke ich die entsprechenden Tabellen vor der Arbeit und unlocke sie danach wieder.

Was passiert aber eigentlich, wenn bei gesperrten Tabellen der User im Scriptverlauf auf eine Fehlermeldung stößt, die nach Anzeige auch das Script stoppt.

Angeblich werden auch Datenbankhandles (seit PHP 5.??) wieder sauber aufgelöst, wenn die Variable, die dieses speichert ihre Gültigkeit verliert.

Bei Scriptabbruch (ohne dass PHP abstürzt) würde dies also geschehen. Theoretisch wäre damit die Funktion mysql_free_result() auch (nahezu) überflüssig.

Mit Schließen der Datenbank-Cennection werden aber auf jeden Fall die Locks auf den table aufgehoben. Achte bitte auch darauf, dass Du keine einzelnen Tabellen unlocken kannst, sondern nur alle Locks gemeinsam aufgehoben werden.

Seit MySQL 5.?? kann man sich aber oft mit einem Subselect das lästige Locken der Tabellen sparen. Dazu gab es neulich erst einen Thread hier, in dem ich das auch erst gelernt habe, dass es nun endlich funktioniert UND ZULÄSSIG IST.

Such mal nach "subselect" ...

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de