Meerdere query's tegelijk uitvoeren ( MySQL )

Door Erik Rijk, 15 jaar geleden, 2.381x bekeken

Het kan voorkomen dat je één of meerdere query's moet uitvoeren bij het submitten van een formulier.

Je kan verschillende soorten query's door elkaar gebruiken.
Of het nu een SELECT, UPDATE, ALTER enz enz.. is

[me]Je Storage Engine dient wel op innoDB te staan wil je hiermee werken![/me]

Voorbeeld:
UPDATE tabelnaam SET geld = geld-100 WHERE id = 1;
UPDATE tabelnaam SET geld = geld+100 WHERE id = 2;

Nu kan het gebeuren dat er na de eerste query een fout optreed, dat betekend dat de ene persoon 100 euro lichter is, maar de andere persoon niet 100 euro rijker is. Dit lijkt me niet de bedoeling.

$query = "SET AUTOCOMMIT=0";
Dmv deze regel laat je MySQL weten dat hij het resultaat van een query niet direct op moet slaan.
$query = "ROLLBACK";
Mocht er een query mislukken, wordt er een ROLLBACK uitgevoerd. Als query 2 mislukt, wordt query 1 ook weer ingetrokken.

Als de 100 euro bij de ene persoon eraf is, maar het kan niet bij de andere persoon aankomen, dan zet MySQL de 100 euro weer terug waar het vandaan kwam.

$query = "SET AUTOCOMMIT=1";
Als alle query's gelukt zijn, voer je deze query uit, hiermee laat je MySQL weten dat hij het definitief moet opslaan.
Mocht je deze regel vergeten en naar een andere pagina gaan. Zullen de query's niet zijn uitgevoerd.

Ik hoop dat jullie er wat aan hebben.

Gesponsorde koppelingen

PHP script bestanden

  1. meerdere-querys-tegelijk-uitvoeren-mysql-

 

Er zijn 4 reacties op 'Meerdere querys tegelijk uitvoeren mysql '

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Dutch Caffeine
Dutch Caffeine
15 jaar geleden
 
0 +1 -0 -1
$connect, waar is die variable uitgelegd, wat heeft dit voor nut als ik het ook al zo doe en iedereen doet het ook.

Wat voor extra's heeft dit?

Wat is het nut hiervan?
PHP erik
PHP erik
15 jaar geleden
 
0 +1 -0 -1
Het is wel leuk maar ik vind het niet echt schaalbaar en ik zie niet echt het voordeel ten opzichte van mysqli en pdo?

Edit: wat ik eigenlijk bedoel te zeggen is dat hier transactions voor zijn gemaakt. (http://www.phphulp.nl/php/tutorials/3/274/503/)
Erik Rijk
Erik Rijk
15 jaar geleden
 
0 +1 -0 -1
$connect is de var waarin de connectie met de database wordt gemaakt.

$connect = mysql_connect('.....');
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Frank -
Frank -
15 jaar geleden
 
0 +1 -0 -1
Ik zou toch maar gewoon met COMMIT en ROLLBACK werken, dat lijkt mij nuttiger dan iets specifieks van MySQL. SET AUTOCOMMIT=0 doe je eenmalig om de database goed in te stellen en dan ben je klaar. Vervolgens zul alle queries met COMMIT of ROLLBACK moeten bevestigen.

Je zou ook kunnen beginnen met START TRANSACTION wanneer je slechts af en toe een transactie nodig hebt. Dan heeft het niet zo veel zin om de autocommit aan te passen.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. meerdere-querys-tegelijk-uitvoeren-mysql-

Labels

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.