MySQL更新未知数量的字段

时间:2016-09-01 11:22:47

标签: php mysql pdo

使用INSERT语句,我可以执行类似的操作,传入未知数量的占位符和值:

$insert_SQL = $db->prepare("INSERT INTO laptops ($fields) VALUES ($placeholders)");
$insert_SQL->execute([$values]);

当您更新记录但不知道值的数量时,是否有类似的方法?像这样:

$update_SQL = $db->prepare("UPDATE laptops ($fields) VALUES ($placeholders) WHERE id = $id");
$update_SQL->execute([$values]);

1 个答案:

答案 0 :(得分:1)

排序。您可以使用REPLACE INTO

$update_SQL = $db->prepare("REPLACE INTO laptops ($fields) ($placeholders)");
$update_SQL->execute([$values]);

注意事项:

  • $fields必须包含id$values必须包含$id
  • 该表必须在id上具有主键或唯一索引。它使用它来确定匹配的行是否已存在。
  • 它将删除并插入一行,而不是实际更新它。如果您在表上有触发器或出于某些性能考虑,这可能很重要。