verschillende rijen updaten in 1 query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ron -

Ron -

18/09/2008 16:20:00
Quote Anchor link
ik bedoel dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
UPDATE  `nieuwe_site`.`members` SET  `level` =  '7' WHERE  `members`.`id` =11 LIMIT 1 ;

UPDATE  `nieuwe_site`.`members` SET  `level` =  '4' WHERE  `members`.`id` =13 LIMIT 1 ;

UPDATE  `nieuwe_site`.`members` SET  `level` =  '6' WHERE  `members`.`id` =14 LIMIT 1 ;
?>


maar dan in 1 query, is dit mogelijk?
 
PHP hulp

PHP hulp

25/04/2024 19:52:26
 
Eddy E

Eddy E

18/09/2008 16:58:00
Quote Anchor link
Ja tuurlijk:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
mysql_query("
   UPDATE members SET  level =  '7' WHERE  id = 11 LIMIT 1;
   UPDATE members SET  level =  '4' WHERE  id = 13 LIMIT 1;
   UPDATE members SET  level =  '6' WHERE  id = 14 LIMIT 1;
   "
;
?>


Dit is dus 1 query met daarin 3 opdrachten.
Behalve met SELECT kan je 'oneindig' veel opdrachten in 1x geven.
phpMyAdmin doet het zelf ook zo, en dat is prima.
Let wel op die rare backticks (`) er niet horen! Bovenstaande code (van mij) is dus veel netter. EN je hoeft niet altijd je tabelnaam te vermelden!
 
Frank -

Frank -

18/09/2008 21:48:00
Quote Anchor link
Uit de PHP-handleiding:
Quote:
mysql_query() sends an unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier .

Eddy heeft dan blijkbaar nieuwe functionaliteit ontdekt, de functie mysql_query() ondersteunde tot een paar minuten geleden geen meervoudige queries.

Wanneer je mysqli gaat gebruiken of PDO, dan kan het wel.

Overigens kun je ook met een CASE in de SQL aan de slag, dan heb je maar 1 query nodig om de genoemde 3 records te updaten. Het ligt aan je SQL-niveau of dat is aan te raden, ga eerst eens met eenvoudige voorbeeldjes spelen.

Ps. Dat PMA het zo lijkt te doen, wil niet zeggen dat het ook zo gebeurt... PMA herschrijft alle queries, vandaar dat ook altijd een LIMIT verschijnt en van die vieze vuile gore backticks ` die niet in SQL thuis horen. PMA is ruk en niet meer dan dat.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Ron -

Ron -

18/09/2008 22:21:00
Quote Anchor link
eddy, wat jij zegt werkt idd niet

ik denk dat ik me es wat meer ga verdiepen in PDO, helaas ondersteund de hosting waar ik zit nog geen mysql in PDO, dus nog ff w88
 



Overzicht Reageren

 
 

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.