2015-04-02 90 views
1

我認爲這已經被問到,但沒有一個答案對我有意義。我的代碼是...檢查主鍵是否存在

if ($current_string == "") { 

    $new_entry_query = 'INSERT INTO house (id, string) VALUES ("' . $userid . '", "' . $new_home_entry . '")'; 
    mysql_query($new_entry_query); 
    Header('Location: landing.php?pho='); 

} else { 

    $entry_update_string = $current_string . $new_home_entry; 
    $new_entry_query = 'UPDATE house SET string="' . $entry_update_string . '" WHERE id="' . $userid . '";'; 
    mysql_query($new_entry_query); 
    Header('Location: landing.php?pho='); 

} 

我的表有兩列。 「id」是主要的,「string」不是。如果你注意到,在第一個if語句中,當我要求數據庫檢查我的「id」時,我檢查「string」查詢是否爲空。

我遇到了問題。我的網站上還有另一個功能,從「字符串」列中刪除所有內容。如果該函數運行,那麼我運行這個腳本,最終會得到一個錯誤。

我需要檢查「id」是否已經存在,以便我知道應該創建一個全新的行,還是隻追加「string」。我會怎麼做?謝謝。

回答

2

你應該使用一個查詢:

INSERT INTO house (`id`, `string`) 
    VALUES ("' . $userid . '", "' . $new_home_entry . '") 
    ON DUPLICATE KEY UPDATE `string` = VALUES(`string`) 
+0

我爲時已晚,要發佈同樣的事情:)在我看來可能是最好的解決方案。 – Forien 2015-04-02 07:01:43

+0

謝謝。完美的作品。 – Allenph 2015-04-02 07:03:46