Ich möchte ein Skript schreiben, mit der Funktion zum Einfügen von Abfragen.
Ich habe eine quantity
-Eingabe in HTML-Form. und ich habe eine MySQL-Abfrage zum Einfügen von registered user
in die Tabelle.
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.
Zum Einfügen dieses Beispiels 3 mal. __ Irgendwelche Vorschläge?
INSERT INTO table (a,b) VALUES (1,2), (2,3), (3,4);
Hier sind einige Möglichkeiten, dies zu tun
INSERT INTO pxlot (realname,email,address,phone,status,regtime,ip)
select '$realname','$email','$address','$phone','0','$dateTime','$ip'
from SOMETABLEWITHTONSOFROWS LIMIT 3;
oder
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'
oder
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')
In den meisten Fällen ist das Einfügen mehrerer Datensätze mit einer Insert-Anweisung in MySQL viel schneller als das Einfügen von Datensätzen mit der for/foreach-Schleife in PHP.
Angenommen, $ column1 und $ column2 sind Arrays mit derselben Größe, die von HTML-Formularen veröffentlicht werden.
Sie können Ihre Abfrage folgendermaßen erstellen:
<?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);
?>
Wenn Daten für zwei Datensätze gebucht werden, wird die Abfrage wie folgt:
INSERT INTOABLE (
column1
,column2
) WERTE ('data', 'data'), ('data', 'data')
Wenn Sie mehrere Werte einfügen möchten, sagen Sie aus mehreren Eingaben, die unterschiedliche Post-Werte haben, aber dieselbe Tabelle zum Einfügen verwenden. Verwenden Sie einfach:
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