如何在mySQL中向一批数据添加一批数据?

时间:2015-10-20 11:20:03

标签: php mysql

我将文件中的数据插入到我的数据库中:

   $sql = "INSERT INTO people (id,name,item1) values(?,?,?) ";
   $q = $pdo->prepare($sql);

   foreach($data as $row) {
       $q->execute(array($id, $row['name'], $row['item']);  
   }

结果如下:

╔═════╦═══════╦═════════╦═════════╗
║ id  ║ name  ║  item1  ║  item2  ║
╠═════╬═══════╬═════════╬═════════╣
║ 12  ║ fred  ║ 24C8EI  ║         ║
║ 12  ║ alan  ║ 767CG5  ║         ║
║ 12  ║ tom   ║ 382F74  ║         ║
╚═════╩═══════╩═════════╩═════════╝

在此步骤之前一切正常。

现在我想用文件副本的数据更新我的数据库(以检查副本是否具有相同的内容。我想比较后面的item1和item2,如果它是相同的)。我的尝试不起作用:

$sql = "UPDATE people SET item2 = ? WHERE id = 12";
$q = $pdo->prepare($sql);
foreach($data as $row) {
   $q->execute(array($row['item'], $id));
}

我认为我有一些逻辑问题。我希望我解释得足以理解我想要达到的目标。

1 个答案:

答案 0 :(得分:0)

从查询中删除id = 12;。因为你在执行语句中传递了两个参数

这将是

$id=12;// initlize you id
$sql = "UPDATE people SET item2 = ? WHERE id = ?";
$q = $pdo->prepare($sql);
foreach($data as $row) {
   $q->execute(array($row['item'], $id));
}