2014-07-24 72 views
0

我正在检查记录是否存在,如果尚未存在则创建新记录,否则进行更新。 SQL在PHPMyAdmin中工作正常,但不能通过PHP页面。尝试更新时使用PHP时出现重复输入错误

$check_for_id = mysql_query("SELECT id FROM Members WHERE ID = '$id'"); 
if(mysql_num_rows($check_for_id) == 0) { 
    // Not found, add a new record 
    $sql="INSERT INTO Members (ID, Title, FirstName, LastName) VALUES ('$id', '$title', '$firstname', '$lastname')"; 
    $response=" Record Added"; 
} else { 
    // Member is already in the database, so let's just update the info 
    $sql="UPDATE Members 
      SET ID='$id', Title='$title', FirstName='$firstname', LastName='$lastname' 
      WHERE ID='$id'"; 
    $response=" Record Updated"; 
} 


if (!mysqli_query($dbconnect,$sql)) { 
    die('Error: ' . mysqli_error($dbconnect)); 
} 
echo mysqli_affected_rows($dbconnect) . $response; 

回答

1

这是一个问题更多比计算器在这里,但它是伟大的,你先在这里问,因为我们会告诉你,不需要处理上的PHP代码。

MySQL有一个叫你想要做的是什么INSERT ... ON DUPLICATE KEY UPDATE语法,只有1个查询,而不是3.还有REPLACE,虽然略有不同(REPLACEINSERTDELETE + INSERTINSERT ODKUINSERTUPDATE,如果你有一个auto_increment结果可能会有所不同)。它将以事务方式完成,与您的代码不同。它还假定id是主键或唯一键。