2014-07-24 49 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是主鍵或唯一鍵。

相關問題