在mysql中更新表得到奇怪的结果

I try to update an existing table in mysql, but I get strange results, I explain my problem:

My table looks like this:

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`),
)

and im trying to use saveVote.php that look like this:

$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");

the 'vote' value is updated but every time when i call the "saveVote.php", for the first time he create an empty entry in my table with only the vote value and after, each time the "saveVote.php" is called the vote value is updated for the right photoName but the vote value for the empty entry is also updated.

Why my request created this empty entry ?

Thanks for help.

It seems like your $namePhoto = $_POST['name']; is also returning a empty value. Try this:

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

Keep in mind that this is just to test. This is not a fix. You need to figure out why you are sending a empty value.