48

複数の挿入クエリへの機能を備えたスクリプトを作成したい。これをもっとよく説明させてください。

quantityHTML形式で1つの入力があります。テーブルに挿入する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回挿入します。助言がありますか?

4

5 に答える 5

107
 INSERT INTO table (a,b) VALUES (1,2), (2,3), (3,4);

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

于 2012-09-19T20:05:46.660 に答える
22

ほとんどの場合、MySQL では 1 つの Insert ステートメントで複数のレコードを挿入する方が、PHP で for/foreach ループを使用してレコードを挿入するよりもはるかに高速です。

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

2 つのレコードのデータが投稿された場​​合、クエリは次のようになります。

INSERT INTO TABLE ( column1, column2) 値 ('data', 'data'), ('data', 'data')

于 2014-10-20T07:51:07.230 に答える
18

ここにそれを行ういくつかの方法があります

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')
于 2012-09-19T20:04:55.910 に答える
-2

複数の値を挿入したい場合は、ポストの値は異なるが挿入するテーブルが同じ複数の入力から言って、単に次を使用します。

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
于 2015-07-28T13:17:16.030 に答える