2010-01-23 6 views

답변

4

당신은 이 당신이 기록

의 배열에서 같은 문장을 구성 할 수있는 방법입니다

(http://dev.mysql.com/doc/refman/5.1/en/insert.html 참조) 다중 삽입 문 (INSERT ... VALUES (신기록), (record2) 등)를 사용할 수 있습니다

$values = array(); 
foreach($records_array as $record) 
    $values[] = sprintf("('%s' , '%s')", addslashes($record['name']), addslashes($record['email'])); 
$sql = "INSERT INTO users(name, email) VALUES " . implode(",", $values); 
mysql_query($sql); 
+0

좋은 소식이지만 참고 : addslashes 대신 mysql_real_escape_string을 사용하십시오 !!!!!!! http://php.net/manual/en/function.mysql-real-escape-string.php – Dan

+0

% s의 의미는 무엇입니까? – user225269

+0

그것은 addslashes ($ record [ 'name'])'가 제공 한 매개 변수의 문자열 대체를 나타냅니다. – Pentium10

3

당신은 배열의 각 구성원을 통해 갈 필요가 배열 : 나는 배열 만 같을 것이다 데이터베이스에 추가됩니다 기록을 사용하여 시도 때문에 각 구성원 또는 - 성능 향상 - user187291's answer에 설명 된대로 모든 레코드를 하나의 명령문에 삽입하십시오.

+0

각 반복마다 DB를 누르는 대신 하나의 쿼리로 모두 수행하는 것이 좋습니다. 아니? –

+0

참. @ stereofrog의 대답은 방법을 설명합니다. VALUES가 한 번에 여러 행을 처리 할 수 ​​있다는 것을 알지 못했습니다! –

관련 문제