2011-07-31 39 views
0

我是新來的PHP。我只是想知道如果MySQL數據庫的表包含數據,哪個PHP腳本可以檢測到。如果是,它將使用提交的表單數據更新數據。如果不是(空白),則會將表單數據插入到其中。如果mysql表中包含數據,更新它,如果沒有插入數據(PHP)

我知道如何使用php插入數據只是想知道如何檢查數據是否存在表中。

謝謝你,祝你有美好的一天。

回答

3

您正在查看INSERT ... ON DUPLICATE KEY UPDATE

INSERT INTO table (a,b,c) VALUES (1,2,3) 
    ON DUPLICATE KEY UPDATE c=c+1; 

就在ON DUPLICATE KEY UPDATE x=y, z=a附加到當前INSERT如果獨特的價值,你嘗試插入已經存在,包含行被更新。

+0

不,我不想檢查是否有重複的數據,我只想檢查是否有任何數據存在表中。如果是,PHP更新現有的數據,如果沒有,PHP插入數據 – edward

+0

然後只需使用'SELECT id FROM table'並檢入代碼是否返回0行,如果沒有,則插入數據。 – Jacob

0

檢查是否在數據庫中存在的數據是讀操作,讓你使用SELECT語句。如果SELECT語句返回一個非空記錄集,那麼你知道數據存在。額外獎勵:您也知道您要查找的數據的ID號,以用於更新操作。

如果您知道您正在更新的行的唯一標識號,您現在可能會進行INSERT ... ON DUPLICATE KEY UPDATE。

使用SELECT語句的唯一問題是,操作不保證是原子 - 也就是,這件事會發生:
- 您運行的SQL語句,並得到一個空集
- 一個不同的進程插入將數據形成數據庫
- 第一個運行select語句的進程,插入相同的表單數據

祝您好運!

相關問題