2013-05-20 82 views
0

我試圖插入多行,但在數據庫和其他錯誤中獲得空行。 因此,試圖使用內爆(作爲一個更好的選擇?),但一定在這裏做錯了什麼。使用implode在sqlite中插入多行

$sql = array(); 
    foreach($_POST as $key => $value) { 
     $sql[] = '("'.sqlite_escape_string($key['cust_name']).'", '.$key['address'].')'; 
    } 

    $stmt = $db->prepare('INSERT INTO customers VALUES (cust_name, address) '.implode(','. $sql)); 
    $stmt->execute($sql); 
+0

不確定您是否可以使用'PDO'進行此類準備。如果可以的話,你將需要更多的代碼。 – Kermit

+0

啊哈,所以我應該怎麼做,這是接近這個? – user2402963

+0

可能做一個搜索,因爲有這個多個問題... [PDO準備在單個查詢插入多行](http://stackoverflow.com/questions/1176352/pdo-prepared-inserts-multiple-rows-in-單查詢) – Kermit

回答

0

做下面的事情會更好嗎?

<?php 

$into = ""; 
$values = ""; 

$cnt = 0; 
$post_cnt = count($_POST); 
foreach($_POST as $key => $value) { 
    $into .= sqlite_escape_string($key).($cnt < $post_cnt && $post_cnt > 1 ? ", ": ""); 
    $values .= "'".sqlite_escape_string($value)."'".($cnt < $post_cnt && $post_cnt > 1 ? ", ": ""); 
    $cnt++; 
} 
$sql = "INSERT INTO customers (".$into.") VALUES (".$values.");"; 

$stmt = $db->prepare($sql); 
$stmt->execute(); 
+0

好吧,$進入將是列名稱,但他們不會匹配,所以不明白我應該如何使用它? – user2402963

+0

頂部的$ into和$ values只是聲明一個空字符串,你不會填寫。 $ into由$ _POST鍵設置。 –