簡體   English   中英

更新發布/行,而不是創建新的

[英]Update post/row, instead of creating new one

我正在建立一個系統,您可以在其中為您的網站創建博客文章。 在那里,我有一個ajax函數,它每兩分鍾保存一次您的帖子草稿。 這樣,如果您的計算機或互聯網崩潰,您就不會失去工作。

但是現在,它會在每次自動保存時保存一個新行。 我該怎么做,而不是創建多個行,而是更新行?

我已經嘗試過ON DUPLICATE KEY UPDATE ,但是沒有用。 我認為可能是因為它需要表單中的唯一字段。 但是在我的數據庫中唯一唯一的是帖子/行的實際ID。

這是我嘗試的代碼:

INSERT INTO blog (title, text, date) 
VALUES ('$blog_title','$blog_text','".time()."')
ON DUPLICATE KEY UPDATE
title='$blog_title', text='$blog_text', modified_date='".time()."'

我有個主意,是在第一次自動保存帖子時獲取帖子/行ID。 在這里我可以使用mysql_insert_id() 然后,該ID可以存儲在一個隱藏的輸入字段中,當它再次自動保存時,它將看到已經存在具有該ID的帖子/行,然后它只會更新而不是創建一個新的ID。

那是一個好的且安全的解決方案,還是我應該做其他事情?

我似乎找不到更好的。


我發現了其他一些類似的問題,但是它們在哪里使用JSON,而我還沒有使用過。

希望有人可以幫助我:)

創建新行時,將ID放入隱藏字段中。 然后,用於處理輸入的代碼可以執行以下操作:

if ($_POST['id']) {
    // update existing row
} else {
    // insert new row and put ID into hidden field
}

不需要使用ON DUPLICATE KEY因為您可以從輸入數據中知道它是作為新條目還是更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM