2015-10-20 59 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