mysql transaction welke querys wel en welke querys niet

Status
Niet open voor verdere reacties.

kenikavanbis

Terugkerende gebruiker
Lid geworden
22 mei 2007
Berichten
2.196
nu stel ik zit op een grote hosting shared of niet maakt niet uit
en ik zou volgende code proberen

ref:http://stackoverflow.com/questions/2708237/php-mysql-transactions-examples
PHP:
mysql_query("SET AUTOCOMMIT=0");
mysql_query("START TRANSACTION");

$a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')");
$a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')");

if ($a1 and $a2) {
    mysql_query("COMMIT");
} else {        
    mysql_query("ROLLBACK");
}
Moet ik dit zien binnen één connectie
Moet ik dit zien binnen één domein
Moet ik dit zien binnen één mysql server.
Iedereen die er iets over weet mag het gerust hier onder plaatsen

WAT WIL IK WETEN
of het andere processen kan storen en hinderen en hierdoor data zou kunnen kwijtspelen wat ik zeker zou willen vermijden.

ik werk momenteel aan volgende
PHP:
        $isEveryThingOk = true;
        $i = 1;
        $sql['Query'.$i++] = "SET AUTOCOMMIT=0";
        
       foreach($sql  as $quey){
        // hier mijn sql
       }
       if($isEveryThingOk){
            hier fout opvangen en commit
       }else {
           hier rolback
}
 
Dit lijkt mij eerder MySQL gerelateerd dan dat het met PHP te maken heeft, om die reden verplaatst.
 
WAT WIL IK WETEN
of het andere processen kan storen en hinderen en hierdoor data zou kunnen kwijtspelen wat ik zeker zou willen vermijden.

Aan je vragen te zien weet je nog helemaal niets van transacties, dus ga jezelf eerst even inlezen. De MySQL hadleiding heeft
meer da genoeg informatie om je op weg te helpen.

Ik kan hier wel gaan uitleggen wat er allemaal mis kan gaan maar als je niet weet wat een transactie is dan ga je daaruit de verkeerde conclusies trekken.
 
mijn vraag ging over dit mysql_query("SET AUTOCOMMIT=0");
nu wist ik niet zeker of dit voor alle querys die na die oproep gebeuren van tel zouden zijn
zie rolback
als er intussentijds enkele orders zouden gemaakt zijn en die kans ik rieel. zou ik bij een rolback data kunnen kwijtspelen nu volgens enkele anderen die heb gehoord is het op de connectie maar hiervoor zal ik mijn vmworkstation weer moeten installeren nu wordt vervolgd
mensen die nuttige testen willen hebben mogen die ook laten weten voor verschillende domeinen en sql en transacties mogelijk zal de test volgend 7 dagen gaan
 
Laatst bewerkt door een moderator:
Ok, dan zal ik toch maar wat uit de handleiding opboeren:

Een transactie is altijd per connectie, er bestaan geen database-brede transacties. Als jij jouw transactie rollbackt dan verandert dat niets aan de transacties van andere processen op dezelfde tabellen, jij kunt via rollback nooit data weggooien die buiten jouw transactie om is toegevoegd of gewijzigd.

Sterker, als er twee transacties open staan die allebei proberen hetzelfde record aan te passen dan zal de query die als tweede probeert het record aan te passen moeten wachten tot de eerste transactie wordt afgesloten, want pas dan weet de database of de veranderingen die de eerste transactie gemaakt heeft wel of niet moeten worden bewaard.

Maar alsnog; lees je in over transacties want MySQL's implementatie is brak!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan