【问题标题】:mysql insert with multiple rows using pdomysql使用pdo插入多行
【发布时间】:2014-06-17 12:17:13
【问题描述】:

我有一个包含多行的关联数组,如下所示:

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();

插入时出现以下错误:

无效的参数号:绑定变量的数量与标记的数量不匹配

我知道这很愚蠢。但是我找不到它...

【问题讨论】:

  • :category name 应该是 :category_name 并且在数组中相同。
  • 我们可以使用引号吗?我试过了,有点不成功。我从外部源获取这个数组,从 csv 文件转换而来。还有其他方法吗
  • str_replace(' ', '_', $k)?
  • str_replace(' ', '_', $v) 参数号无效:绑定变量数与标记数不匹配
  • 您还有其他一些问题

标签: mysql pdo


【解决方案1】:
$sql = "INSERT INTO subcategory (cb_category_id,subcategory_name) VALUES (?,?)";
$stmt = $conn->prepare($sql);
foreach ($paArray as $v){
    $stmt->execute(array_values($v));
}

【讨论】:

    猜你喜欢
    • 2014-08-08
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2015-08-20
    • 2019-01-12
    • 2012-04-21
    相关资源
    最近更新 更多