Ariën
23-06-2016 00:28
gewijzigd op 23-06-2016 00:29
jup
Edit:
Maar ik lees net dat er ook een multi-query functie bestaat:
mysqli_multi_query()
Link gekopieerd
- Ariën - op 23/06/2016 00:28:50
jup
Edit:
Maar ik lees net dat er ook een multi-query functie bestaat:
mysqli_multi_query()
Het is nu gelukt, Ik dacht altijd dat je meerdere queries kon stoppen in mysqli_query Bedankt!
[size=xsmall]
Toevoeging op 23/06/2016 00:34:36: [/size]
Slotje?
Link gekopieerd
FIjnd at het opgelsot is.
Nee, slotjes delen we niet uit als iets opgelost is. Het topic zinkt vanzelf wel omlaag.
Link gekopieerd
- Ariën - op 23/06/2016 00:28:50
Maar ik lees net dat er ook een multi-query functie bestaat:
mysqli_multi_query()
NNNNNNNEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Niet gebruiken!
Om meerdere redenen niet. Long story short, het heeft veels te veel haken en ogen.
Echt, bespaar jezelf een hoop ellende en gebruik losse queries.
Ja, de START TRANSACTION; en COMMIT; weglaten, zodat je twee queries overhoudt. Je moet wel goed opletten dat je database consistent blijft.
Als er iets is dat databases consistent houdt, is het wel het gebruik van transacties!
Link gekopieerd
Thomas van den Heuvel op 23/06/2016 00:40:45
[quote="- Ariën - op 23/06/2016 00:28:50"]
Maar ik lees net dat er ook een multi-query functie bestaat:
mysqli_multi_query()
NNNNNNNEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Niet gebruiken!
Om meerdere redenen niet. Long story short, het heeft veels te veel haken en ogen.
Echt, bespaar jezelf een hoop ellende en gebruik losse queries.
[/quote]
Argumentatie is gelukkig niet verboden!
Link gekopieerd
Je hebt geen garantie dat alle queries worden uitgevoerd.
In welk geval wijzigingen mogelijk half doorgevoerd worden.
Ook is het beveiligen van dat soort queries een ramp.
En tot slot, juist voor dit specifieke doel, het-als-één-geheel-uitvoeren-van-meerdere-queries-(of-in-het-geheel-niet), zijn transacties!
Een multiquery is niet voor dit doel geschikt omdat als die batch halverwege strandt er geen rollback is. Dan zit er dus inconsistente bagger in je database.
Ook kan de detectie van OF er een query onderuit ging en WELKE nogal lastig zijn in een batch :/.
Link gekopieerd
Met transacties:
<?php
$db = new mysqli('127.0.0.1', 'username', 'passwd', 'dbname');
$db->begin_transaction();
$db->query("INSERT INTO Tickets (Minecraftnaam, Showid) VALUES ('TheIndra', '1')");
$db->query("UPDATE Shows SET Gekocht = '1' WHERE id='1'");
$db->commit();
$db->close();
?>
Ik vraag me alleen af of dit wel je bedoeling is:
UPDATE Shows SET Gekocht = '1' WHERE id='1';
Dit is eigenlijk geen update, maar een reset: je stelt Gekocht steeds opnieuw op 1 in.
Link gekopieerd