Vor langer Zeit schrieb ich eine PHP-Klasse, die Postgresql-Db-Verbindungen behandelt.
Ich habe Transaktionen zu meinen Insert/Update-Funktionen hinzugefügt und es funktioniert gut für mich. Aber kürzlich habe ich von der Funktion "pg_prepare" erfahren.
Ich bin etwas verwirrt darüber, was diese Funktion macht und ob es besser ist, zu ihr zu wechseln.PHP- und PostgreSQL-Transaktionen?
Derzeit, wenn ich einen Einsatz tun/My SQL aktualisieren sieht wie folgt aus:
$transactionSql = "PREPARE TRANSACTION ".md5(time()).";"
.$theUpdateOrDeleteSQL.";".
."COMMIT;";
This will return something like:
PREPARE TRANSACTION '4601a2e4b4aa2632167d3cc62b516e6d';
INSERT INTO users (username,g_id,email,password)
VALUES('test', '1', 'test','1234');
COMMIT;
Ich habe meine Datenbank mit Beziehungen aufgebaut und ich bin mit (wenn es möglich ist):
ON DELETE CASCADE
ON UPDATE CASCADE
Aber ich möchte 100% sicher sein, dass die Dinge in der Datenbank sauber sind und es keine Reste gibt, wenn/wenn es einen Fehler beim Aktualisieren/Löschen oder Einfügen gibt.
Es wäre schön, wenn Sie Ihre Meinung/Erfahrung über pg_prepare teilen können, brauche ich wirklich die "Transaktion vorbereiten" und andere zusätzliche Dinge, die mir helfen könnten? :)
Warum verwenden Sie 'PREPARE TRANSACTION 'genau? Hast du seine [Dokumentation] (http://www.postgresql.org/docs/current/static/sql-prepare-transaction.html) gelesen? Insbesondere der Teil über "PREPARE TRANSACTION ist nicht für den Einsatz in Anwendungen oder interaktiven Sitzungen gedacht ..."? –
Yeah .. Etwas verpasst, dass vor ein paar Jahren, als ich den Treiber schrieb .. Danke für die Hilfe :) – tftd