Je veux écrire un script, avec une fonction pour insérer plusieurs requêtes ..__ laisse-moi mieux t'expliquer.
J'ai une entrée quantity
sous forme html. et j’ai une requête MySQL à insérerregistered user
dans la table . Je souhaite donc que ma fonction insère cette requête "fois".
mysql_query("INSERT INTO `pxlot` (realname,email,address,phone,status,regtime,ip)
VALUES ('$realname','$email','$address','$phone','0','$dateTime','$ip')")
or die (mysql_error()); // Inserts the user.
Pour insérer ceci par exemple 3 fois . Des suggestions?
INSERT INTO table (a,b) VALUES (1,2), (2,3), (3,4);
Voici quelques façons de le faire
INSERT INTO pxlot (realname,email,address,phone,status,regtime,ip)
select '$realname','$email','$address','$phone','0','$dateTime','$ip'
from SOMETABLEWITHTONSOFROWS LIMIT 3;
ou
INSERT INTO pxlot (realname,email,address,phone,status,regtime,ip)
select '$realname','$email','$address','$phone','0','$dateTime','$ip'
union all select '$realname','$email','$address','$phone','0','$dateTime','$ip'
union all select '$realname','$email','$address','$phone','0','$dateTime','$ip'
ou
INSERT INTO pxlot (realname,email,address,phone,status,regtime,ip)
values ('$realname','$email','$address','$phone','0','$dateTime','$ip')
,('$realname','$email','$address','$phone','0','$dateTime','$ip')
,('$realname','$email','$address','$phone','0','$dateTime','$ip')
Dans la plupart des cas, l'insertion de plusieurs enregistrements avec une seule instruction Insert est beaucoup plus rapide dans MySQL que l'insertion d'enregistrements avec une boucle for/foreach dans PHP.
Supposons que $ column1 et $ column2 sont des tableaux de même taille publiés sous forme HTML.
Vous pouvez créer votre requête comme ceci:
<?php
$query = 'INSERT INTO TABLE (`column1`, `column2`) VALUES ';
$query_parts = array();
for($x=0; $x<count($column1); $x++){
$query_parts[] = "('" . $column1[$x] . "', '" . $column2[$x] . "')";
}
echo $query .= implode(',', $query_parts);
?>
Si des données sont enregistrées pour deux enregistrements, la requête devient:
INSERT INTO TABLE (
column1
,column2
) VALEURS ('data', 'data'), ('data', 'data')
Si vous souhaitez insérer plusieurs valeurs, par exemple, à partir de plusieurs entrées ayant différentes valeurs de publication mais la même table dans laquelle insérer, utilisez simplement:
mysql_query("INSERT INTO `table` (a,b,c,d,e,f,g) VALUES
('$a','$b','$c','$d','$e','$f','$g'),
('$a','$b','$c','$d','$e','$f','$g'),
('$a','$b','$c','$d','$e','$f','$g')")
or die (mysql_error()); // Inserts 3 times in 3 different rows