我建议使用PHP 的 PDO而不是 mysql_* 函数,因为它们已被正式弃用,而且PHP 的 PDO是一种更安全且更面向对象的方法。
→ 有关PHP 的 PDO 的更多信息,请访问: http: //php.net/manual/en/book.pdo.php
话虽如此,INSERT语句仅返回TRUE或FALSE,具体取决于 INSERT 语句是成功完成还是失败。
→ 此外,mysql_affected_rows()或mysql_num_rows()只会返回插入/更新的行数,而不是您正在寻找的旧成本。
因此,您需要分两部分执行此操作:
一个)
SELECT `cost`
FROM `details`
WHERE `id` = '$id'
如果为上述查询找到行,则您知道您有重复的 id,并且可以评估cost
返回的与您拥有的新 $cost。
然后,您可以使用可用的新旧成本来回答您的问题,并且可以:
二)
INSERT INTO details (id, name, team, cost)
VALUES ('$id', '$name', '$team', '$cost')
ON DUPLICATE KEY UPDATE cost = '$cost'
→ 确保你清理了你正在使用的变量;mysql_real_escape_string
→ 或者只使用PHP 的 PDO,因为当您将变量绑定到查询时,它会为您清理变量。