2013-08-01 1 views
-1

나는이 같은 SQL 문을 구축을 위해 노력하고있다 :우리는 어떻게 php로 배열을 인터레이스 할 수 있습니까?

INSERT INTO mytable(`People`, `Places`, `Ideas`) 
     VALUES ('40', '15', null), 
       (null, '5', '10'), 
       ('10', null, '11'); 

우리가 다음 값으로 세 가지 배열 ....

$people = array('45','null','10'); 
$places = array('15','5','null'); 
$ideas = array('null','11'); 

어떻게 내 배열에서 해당 SQL 쿼리 구축 할 수 있습니다?

+0

PDO 또는 이와 유사한 것을 사용하는 것이 좋습니다. mysql_query()는 더 이상 사용되지 않습니다. – MightyPork

+0

Noway. 배열에 문자열 'null'대신에 NULL 값이 없으면 –

+0

가능한 한 개의 쿼리 PHP [여러 개의 MySQL INSERT 문] (http://stackoverflow.com/questions/1307618/multiple-mysql-insert-statements-in) -one-query-php) – Brad

답변

0

implode이 쉽게 :이 내용은 한 당신의 가치는 모든 숫자 또는 null 그대로 작동합니다

$query = 'INSERT INTO mytable(`People`, `Places`, `Ideas`) VALUES '; 

$value_arrs = array($people, $places, $ideas); 
$value_arrs_size = count($value_arrs); 

for ($i = 0; $i < $value_arrs_size; ++$i) { 
    $query .= '(' . implode(', ', $value_arrays[$i]) . ')'; 

    if ($i < $value_arrs_size - 1) { 
     $query .= ', '; 
    } 
} 

. SQL 문에서 원하는 문자열에 따옴표를 추가해야합니다.

사용자가 입력하는 내용 인 경우 sanitize to prevent SQL Injection이어야합니다.

관련 문제