我用它来添加或更新数据库中的内容。

$update = mysql_query
("
    INSERT INTO details (id, name, team, cost)
    VALUES ('$id', '$name', '$team', '$cost')
    ON DUPLICATE KEY UPDATE cost = '$cost'
")
or die (mysql_error());

基本上,我想。。。。。
如果$cost更改,则将旧值和新值回显到屏幕,否则不执行任何操作。
我该怎么做呢?

最佳答案

首先,您必须在temp变量中保留与id对应的成本

$query        = "SELECT cost FROM details WHERE id = $id";
$resource     = mysql_query($query);
$temp_array   = mysql_fetch_assoc($resource);
$old_cost     = $temp_array['cost'];

现在做你的手术
mysql_受影响的_行在重复密钥更新操作时将返回2
$update = mysql_query("
INSERT INTO details (id, name, team, cost)
VALUES ('$id', '$name', '$team', '$cost')
ON DUPLICATE KEY UPDATE cost = '$cost' ")
  or die (mysql_error());
  if(mysql_affected_rows() == 2)
  {
      echo "old cost = $old_cost";
      echo "New Cost : $cost";
   }

试试这个希望能帮上忙

关于php - 识别何时发生更新?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15286550/

10-12 18:32