2013-08-28 2 views
0

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

이 여러 행을 삽입 할 수 있습니다 VALUES 구문을 사용 How to do a batch insert in MySQL

INSERT 문을 참조하십시오. 이를 수행하려면 각각 괄호 안에 쉼표로 구분 된 여러 개의 열 값 목록을 포함시킵니다. 예 :

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

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

OUTPUT

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