2016-07-24 59 views
0

我很新的MySQL和有一個表(listOfNames)3列像這樣:MySQL和PHP INSERT和UPDATE和檢索新值將立即

id[int] auto-increment (primary) 
name[varchar] (unique) 
timesSeen[int] default 1 

我插入「名」到表通過首先檢查是否爲名稱已存在某行,如果不是我們添加它,否則,我們通過增加其更新timesSeen 1。我能夠做的值用下面的PHP的mysqli對象:

$query = "INSERT INTO `listOfNames`(`name`) VALUES (`someName`) ON DUPLICATE KEY UPDATE `timesSeen` = VALUES (`timesSeen`) + 1"; 
$results = $conn->query($query); 

什麼我想要做的是現在訪問someName的timesSeen的新值,而不用做一個新的SELECT查詢。我認爲你可以訪問這一行,只需插入或更新它,而無需創建一個新的單獨的SELECT查詢。然而$ conn-> query()只返回一個用於INSERT查詢的布爾值。

那麼,在我的INSERT UPDATE查詢之後立即爲「someName」獲取新的timesSeen值的最簡單方法是什麼?我有沒有看到我的$ conn對象有某種lastResult()成員函數?

感謝您提供的任何幫助。

回答

1

沒有其他查詢,沒有辦法立即檢索新值。您將始終必須發送SELECT查詢以檢索新值。

+0

謝謝,我剛剛在文檔中以及http://dev.mysql.com/doc/refman/5.7/en/update.html中閱讀它。 「您無法更新表並從子查詢中的同一個表中進行選擇。」然後我將使用另一個SELECT查詢。 – Wallboy