用一个查询MySQL插入多行

我想写脚本,用函数来插入多个查询。 让我更好地解释一下。

我有一个html格式的quantityinput。 我有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); 

http://dev.mysql.com/doc/refman/5.5/en/insert.html

这里有几个方法来做到这一点

 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( column1column2 )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