Вставить несколько строк с одним запросом MySQL

Я хочу написать скрипт, с функцией для нескольких запросов на вставку. позвольте мне объяснить это лучше.

У меня есть один ввод quantity в форме html. и у меня есть запрос 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 раза. Какие-либо предложения?

  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 намного быстрее в MySQL, чем вставка записей для цикла for / foreach в PHP.

Предположим, что $ column1 и $ column2 являются массивами с одинаковым размером, размещенным по форме html.

Вы можете создать свой запрос следующим образом:

 <?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); ?> 

Если данные отправляются для двух записей, запрос будет выглядеть следующим образом:

INSERT INTO TABLE ( column1 , column2 ) VALUES («данные», «данные») («данные», «данные»)

Если вы хотите вставить несколько значений, скажем, из нескольких входов, которые имеют разные значения post, но та же самая таблица для вставки, а затем просто используйте:

 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