Ik heb een query waar honderden velden moeten worden upgedate. Maar hij werkt niet. Als ik de gegenereerde query file_put_contents en deze dan in phpMyAdmin plaats, dan gaat de query gewoon goed.
UPDATE hashes h SET hash='[...]' WHERE h.id=1 AND h.update=2 LIMIT 1;
UPDATE hashes h SET hash='[...]' WHERE h.id=2 AND h.update=2 LIMIT 1;
UPDATE hashes h SET hash='[...]' WHERE h.id=3 AND h.update=2 LIMIT 1;
...
UPDATE hashes h SET hash='[...]' WHERE h.id=200 AND h.update=2 LIMIT 1;
Niets mis mee. Maar via $mysqli->query() werkt het niet.
In plaats daarvan moet ik in de loop die deze query opbouwd elke UPDATE apart in de query gooien. Dan werkt het wel.
Door te debuggen kom ik ook nergens achter, en ik krijg ook niet even een nette foutmelding ofzo. Mijn eerste gok is dat een query niet zo lang mag zijn, maar de querylengte ligt volgens google tussen de 64k en de omvang van je vrije geheugen, dus daar zal het niet aan liggen.
Ik merk absoluut geen lag ofzo, maar het klinkt zo slordig om zoveel losse queries te doen wat gewoon in één keer zou moeten kunnen.
Heeft iemand een idee waar ik nog meer aan kan denken?
UPDATE hashes h SET hash='[...]' WHERE h.id=1 AND h.update=2 LIMIT 1;
UPDATE hashes h SET hash='[...]' WHERE h.id=2 AND h.update=2 LIMIT 1;
UPDATE hashes h SET hash='[...]' WHERE h.id=3 AND h.update=2 LIMIT 1;
...
UPDATE hashes h SET hash='[...]' WHERE h.id=200 AND h.update=2 LIMIT 1;
Niets mis mee. Maar via $mysqli->query() werkt het niet.
In plaats daarvan moet ik in de loop die deze query opbouwd elke UPDATE apart in de query gooien. Dan werkt het wel.
Door te debuggen kom ik ook nergens achter, en ik krijg ook niet even een nette foutmelding ofzo. Mijn eerste gok is dat een query niet zo lang mag zijn, maar de querylengte ligt volgens google tussen de 64k en de omvang van je vrije geheugen, dus daar zal het niet aan liggen.
Ik merk absoluut geen lag ofzo, maar het klinkt zo slordig om zoveel losse queries te doen wat gewoon in één keer zou moeten kunnen.
Heeft iemand een idee waar ik nog meer aan kan denken?
🇪🇺 Buy from EU (GoT)