我无法让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
答案 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 |
------------------