sql splitsen in commando's
Jan R
19/10/2022 18:35:56Hoi
Ik heb een lijst met commando's. gewoon opeen volgend gesplits met punt komma zoals het hoort.
Ik splist de totale lijst op ; en voer commando per commando uit om een controle te hebben in geval van fouten.
Nu bevatten sommige commando's ook een ; zoals
Hoe kan ik correct splitsen?
Jan
Ik heb een lijst met commando's. gewoon opeen volgend gesplits met punt komma zoals het hoort.
Ik splist de totale lijst op ; en voer commando per commando uit om een controle te hebben in geval van fouten.
Nu bevatten sommige commando's ook een ; zoals
Code (php)
1
INSERT INTO trn_spelers VALUES("295", "10", "r", "j", "0", "0", "0", "13718", "0", "260746", "0", "0", "1", "0", "Voormalig kampioen;Simultaan uitslag +5=2-3", "78.21.24.229", "", "Jan Remue", "2017-12-04 00:00:00");
Hoe kan ik correct splitsen?
Jan
PHP hulp
14/11/2024 04:24:30Bart Smulders
19/10/2022 21:51:39Je hebt meer nodig dan explode(). Je moet toch rekening houden met de ";", als onderdeel van het commando. Die punt-komma moet op een eenduidige manier worden ge-escaped. Neem een voorbeeld aan SQL, dan moet je bij het escapen van een " gewoon tweemaal een " gebruiken (""), of je doet iets met de backslash en een " (\").
De puntkomma die een SQL-commando afsluit, staat in de regel pal voor een regeleinde. Verder beginnen de meeste SQL-commando's in een datadump waarschijnlijk met INSERT of misschien UPDATE. Je kunt dus redelijk trefzeker splitsen op achtereenvolgens:
- puntkomma
- regeleinde
- INSERT of UPDATE
Een andere oplossing is een multi_query() verpakken in een transactie die je bij fouten kunt terugrollen.
- puntkomma
- regeleinde
- INSERT of UPDATE
Een andere oplossing is een multi_query() verpakken in een transactie die je bij fouten kunt terugrollen.