0

如果名称已经存在,我的脚本需要更新表。但它没有这样做。

这是我正在使用的代码

$sth = $db->prepare(
  'INSERT INTO track (rsname, overallranknow, overalllevelnow, overallxpnow)
       VALUES (:name, :Overalln, :Overall1, :Overall2)
       ON DUPLICATE KEY UPDATE 
       rsname = values(rsname), 
       overallranknow = values(overallranknow),
       overalllevelnow = values(overalllevelnow),
       overallxpnow = values(overallxpnow)'
);      
$sth->bindValue(':name', $name, PDO::PARAM_STR);
$sth->bindValue(':Overalln', $Overalln, PDO::PARAM_INT);
$sth->bindValue(':Overall1', $Overall[1], PDO::PARAM_INT);
$sth->bindValue(':Overall2', $Overall[2], PDO::PARAM_INT);
$sth->execute();

它应该只在名称已经存在时更新。我对 PDO 不了解,所以这就是为什么我要这么问。

~Kev(英语不好=抱歉)

4

1 回答 1

2

教你这个查询的人没有告诉你需要一个唯一的键才能工作。

于 2013-07-10T10:03:08.277 回答