Ik ben bezig met een project waarbij ik het gebruik van transactions wil gaan gebruiken.
De technische details alsvast maar even:
MySQL 4.1(InnoDB) - PHP 4.3.1 en het wordt getest op een Windows XP Pro NL systeem.
Ik heb verschillende queries van zowel SELECT als UPDATE. Tot nu toe heb ik er 20 maar er
kunnen er nog wel een paar bij komen.
Ik begin de transaction met
Dan volgen alle queries en is het de bedoeling dat er een Commit of Rollback gegeven wordt.
Tot nu toe is het me duidelijk hoe dit principe werkt. Echter het probleem zit hem in het volgende:
Om een Rollback te geven moet ik zeker weten dat alle queries gelukt zijn. Nou kan ik voor iedere query de volgende manier gebruiken:
Wanneer het aantal queries groter wordt lijkt me dit vrij omslachtig. Is hier een snellere/meer efficiente manier voor? Op php.net heb ik al veel gelezen over transactions maar nergens gaan
ze echt in op het controleren van queries om daarna te committen of juist niet.
Op mysql.com staan ook voorbeelden van de commandline interface maar ook daar moet
een gebruiker zelf constateren of een query goed uitgevoerd is of niet.
De improved mysql functions op php.net bieden ook geen uitkomst afgezien van het feit dat
ze in PHP5 verwerkt zijn.
Alle info links etc zijn zeer welkom
De technische details alsvast maar even:
MySQL 4.1(InnoDB) - PHP 4.3.1 en het wordt getest op een Windows XP Pro NL systeem.
Ik heb verschillende queries van zowel SELECT als UPDATE. Tot nu toe heb ik er 20 maar er
kunnen er nog wel een paar bij komen.
Ik begin de transaction met
code:
1
| START TRANSACTION |
Dan volgen alle queries en is het de bedoeling dat er een Commit of Rollback gegeven wordt.
Tot nu toe is het me duidelijk hoe dit principe werkt. Echter het probleem zit hem in het volgende:
Om een Rollback te geven moet ik zeker weten dat alle queries gelukt zijn. Nou kan ik voor iedere query de volgende manier gebruiken:
code:
1
2
3
4
| if(!$result) { // Voer een rollback statement uit. ... } |
Wanneer het aantal queries groter wordt lijkt me dit vrij omslachtig. Is hier een snellere/meer efficiente manier voor? Op php.net heb ik al veel gelezen over transactions maar nergens gaan
ze echt in op het controleren van queries om daarna te committen of juist niet.
Op mysql.com staan ook voorbeelden van de commandline interface maar ook daar moet
een gebruiker zelf constateren of een query goed uitgevoerd is of niet.
De improved mysql functions op php.net bieden ook geen uitkomst afgezien van het feit dat
ze in PHP5 verwerkt zijn.
Alle info links etc zijn zeer welkom
cd /usr/ports/www/porn make install