2015-10-20 83 views
3

我嘗試更新MySQL中現有的表,但我得到了奇怪的結果,我解釋我的問題:更新表得到奇怪的結果

我的表看起來像這樣:

TABLE `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`photoName` varchar(255) COLLATE latin1_general_ci NOT NULL, 
`vote` int(11) NOT NULL, 
PRIMARY KEY (`id`), 
UNIQUE KEY `photoName_2` (`photoName`), 
) 

和IM嘗試使用saveVote.php看起來像這樣的:

$namePhoto = $_POST['name']; 
$likePhoto = $_POST['like']; 

mysql_connect("host","dbUser","psw"); 

mysql_select_db("db_is"); 

mysql_query("INSERT INTO `myTable` (`photoName`,`vote`) VALUES('$namePhoto','$likePhoto') ON DUPLICATE KEY UPDATE vote = vote + 1"); 

的「票」值被更新,但每次當我稱之爲「saveVote.php」的時候,在他第一次創建我的表中的空項只有vote值和之後,每次「saveVote.php」被調用 vote值更新爲正確的photoName,但空值條目的vote值也被更新。

爲什麼我的請求創建了這個空條目?

感謝您的幫助。

+0

請分享將'POST'數據發送到'saveVote.php'的代碼 –

+0

我從iOS應用程序saveVote.php發送POST數據,您可以顯示此http://bytes.com/topic/php/insights/664241-using-html-forms-pass-data-php從html發送 – Mejdan

回答

0

看來你的$ namePhoto = $ _POST ['name'];也返回一個空值。試試這個:

if(!empty($_POST['name'])){ 
mysql_query("INSERT INTO `myTable` (`photoName`,`vote`) VALUES('$namePhoto','$likePhoto') ON DUPLICATE KEY UPDATE vote = vote + 1"); 
} 

請記住,這只是爲了測試。這不是一個修復。你需要弄清楚你爲什麼發送一個空值。

+0

感謝您的幫助,但是當我添加您的代碼時表格未更新 – Mejdan

+0

對不起,我有一個語法錯誤。錯過了a)在if語句 –

+0

非常感謝,它與$ _POST ['name']空值的if語句很好地工作,我認爲空數據由ios代碼發送,但我不在家,我可以驗證我的Objc-C代碼.. – Mejdan