2014-06-17 106 views
0

我有一個包含多個行的關聯數組,像如下多行:MySQL的插入用PDO

Array 
(
    [0] => Array 
     (
      [ID] => 37 
      [category name] => Cell Phone 
     ) 

    [1] => Array 
     (
      [ID] => 38 
      [category name] => LED Light 
     ) 

等等...

我有以下功能,以將數據插入到我的數據庫使用PDO。

function PDOBindArray($poStatement, $paArray){ 
    foreach ($paArray as $k=>$v){ 
    $poStatement->bindValue(':'.$k,$v); 
} 
    } 

,這裏是我的插入語句:

$stmt = $conn->prepare("INSERT INTO subcategory (cb_category_id,subcategory_name) VALUES (:ID,:category name)"); 
PDOBindArray($stmt,$data); 
$stmt->execute(); 

我插入過程中出現以下錯誤:

非法參數編號:綁定變量的數量不匹配的令牌數量

我知道這是愚蠢的。但我無法找到它...

+0

':category name'應該是':category_name'並且在數組中相同。我們可以使用引號 – hjpotter92

+0

嗎?我試了一下,有點不成功。我從外部來源獲得這個數組,從csv文件轉換。是否有其他方式 – user3737431

+0

'str_replace('','_',$ k)'? – hjpotter92

回答

0
$sql = "INSERT INTO subcategory (cb_category_id,subcategory_name) VALUES (?,?)"; 
$stmt = $conn->prepare($sql); 
foreach ($paArray as $v){ 
    $stmt->execute(array_values($v)); 
} 
+0

非常感謝。那就是訣竅:) – user3737431