用一个查询MySQL插入多行
我想写脚本,用函数来插入多个查询。 让我更好地解释一下。
我有一个html格式的quantity
input。 我有MySQL查询插入registered user
到表中。 所以我想我的函数插入这个查询“数量”次。
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.
要插入这个例如3次。 有什么build议么?
INSERT INTO table (a,b) VALUES (1,2), (2,3), (3,4);
这里有几个方法来做到这一点
INSERT INTO pxlot (realname,email,address,phone,status,regtime,ip) select '$realname','$email','$address','$phone','0','$dateTime','$ip' from SOMETABLEWITHTONSOFROWS LIMIT 3;
要么
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'
要么
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')
在大多数情况下,使用一个Insert语句插入多个logging比在PHP中使用for / foreach循环插入logging要快得多。
假设$ column1和$ column2是由html表单发布的相同大小的数组。
你可以像这样创build你的查询:
<?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); ?>
如果数据发布了两条logging,则查询将变为:
INSERT INTO TABLE(
column1
,column2
)VALUES('data','data'),('data','data')
如果你想要插入多个值,可以说多个input有不同的后期值,但要插入相同的表,然后简单地使用:
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