2013-08-01 36 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讓一切變得簡單:

$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 .= ', '; 
    } 
} 

這隻會只要您的值都爲數字或null工作。您需要在您的SQL語句中的任何字符串周圍添加引號。

此外,如果這是用戶提供的輸入,您的必須sanitize to prevent SQL Injection