Il y a longtemps, j'ai écrit une classe php qui gère les connexions db postgresql.
J'ai ajouté des transactions à mes fonctions d'insertion/mise à jour et cela fonctionne très bien pour moi. Mais récemment, j'ai découvert la fonction "pg_prepare".
Je suis un peu confus au sujet de ce que cette fonction fait et si ce sera mieux d'y passer.Transactions PHP et PostgreSQL?
Actuellement chaque fois que je fais un insert/mettre à jour mon sql ressemble à ceci:
$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;
J'ai structuré ma base de données avec les relations et je suis en utilisant (quand il est possible):
ON DELETE CASCADE
ON UPDATE CASCADE
Mais je veux être sûr à 100% que les choses sont propres dans la base de données et qu'il n'y a pas de restes si/quand il y a un échec lors de la mise à jour/suppression ou insertion.
Ce serait sympa si vous pouviez partager votre avis/expérience à propos de pg_prepare, ai-je vraiment besoin de la "préparation de transaction" et d'autres choses qui pourraient m'aider? :)
Pourquoi utilisez-vous exactement «PREPARE TRANSACTION»? Avez-vous lu sa [documentation] (http://www.postgresql.org/docs/current/static/sql-prepare-transaction.html)? Surtout la partie sur "PREPARE TRANSACTION n'est pas destinée à être utilisée dans des applications ou des sessions interactives ..."? –
Ouais .. Un peu raté qu'il y a quelques années quand j'ai écrit le pilote .. Merci pour l'aide :) – tftd