在MySQL数据库中一次插入多行

时间:2013-08-28 17:58:04

标签: php mysql

我无法让PHP在MySQL数据库中一次插入多行。

我使用$sql = "INSERT INTO database (a,b,c,d,e) VALUES ('$a', '$b' ,'$c', '$d', '$e')";

我想在数据库中一次插入5行,但它只插入每5条记录。

例如: 1. AA 2. AB 3. AC 4. AD 5. AE

2 个答案:

答案 0 :(得分:2)

请参阅How to do a batch insert in MySQL

  

使用VALUES语法的INSERT语句可以插入多行。为此,请包含多个列值列表,每个列值都括在括号内并用逗号分隔。例如:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

答案 1 :(得分:0)

HTML

<span class="row" ><input name="a[]" value="AA" /><input name="b[]" value="AA" /></span>
<span class="row" ><input name="a[]" value="AB" /><input name="b[]" value="AB" /></span>
<span class="row" ><input name="a[]" value="AC" /><input name="b[]" value="AC" /></span>
<span class="row" ><input name="a[]" value="AD" /><input name="b[]" value="AD" /></span>
<span class="row" ><input name="a[]" value="AE" /><input name="b[]" value="AE" /></span>

PHP

$sql= array(); 
    for ($x = 0; $x < count($_POST['a']); $x++ ) {
            $sql[] = '('.$_POST["a"][$x].','.$_POST["b"][$x].')';
    }
mysql_query('INSERT INTO `orders` (`a`, `b`) VALUES '.implode(',', $sql));

输出

==================
| id |  a  |  b  |
|================|
| 1  | AA  | AA  |
|----|-----|-----|
| 2  | AB  | AB  |
|----|-----|-----|
| 3  | AC  | AC  |
|----|-----|-----|
| 4  | AD  | AD  |
|----|-----|-----|
| 5  | AE  | AE  |
------------------