2015-10-19 55 views
0

现在我知道有很多这个问题上的帖子,但无论我读了多少我仍然无法得到这个工作。Mysqli如果存在更新其他更新

我有以下代码

$results = $mysqli->query("SELECT * FROM exhibitor_list WHERE companyid='$iscid'"); 

if ($result->num_rows > 1){ 

$mysqli->query("UPDATE `exhibitor_list` (`id`, `company_name`, `description`, `country`, `website`, `logo`, `sponsortype`, `flag`, `facebook`, `twitter`, `instagram`, `youtube`,`facebookshow`, `twittershow`, `instagramshow`, `youtubeshow`, `companyid`) VALUES (NULL, '$companyname', '$description', '$country', '$website', '$file', '$sponsortype', '$countrycode', '$facebook', '$twitter', '$insta', '$youtube', '$facebookshow', '$twittershow', '$instashow', '$youtubeshow', '$iscid')"); 
} 
else { 
$mysqli->query("INSERT IGNORE INTO `exhibitor_list` (`id`, `company_name`, `description`, `country`, `website`, `logo`, `sponsortype`, `flag`, `facebook`, `twitter`, `instagram`, `youtube`,`facebookshow`, `twittershow`, `instagramshow`, `youtubeshow`, `companyid`) VALUES (NULL, '$companyname', '$description', '$country', '$website', '$file', '$sponsortype', '$countrycode', '$facebook', '$twitter', '$insta', '$youtube', '$facebookshow', '$twittershow', '$instashow', '$youtubeshow', '$iscid')"); 
} 

它会插入一个新的领域到数据库中,但如果$ iscid已经在“companyid”表也不会更新。

我敢肯定,我的代码错了,但只是无法弄清楚。

任何帮助表示赞赏。

+0

'$ result-> num_rows> 1'真的是'$ result-> num_rows> 0'吗? –

+0

我也尝试过0,但仍然不起作用。 –

回答

0

您更新命令应改为:

UPDATE exhibitor_list SET company_name ="....", description ="...." WHERE id = 'your row id' 

也奔Y是正确的,你应该检查NUM_ROWS是大于0而不是1

+0

那里有null开始,并获得一个自动增量编号为他们的id作为行已成功插入。如果它用于更新(其中该行已经有一个id),那么应该用NULL代替什么? –

+0

我认为你错误地执行了更新。尝试用“UPDATE exhibitor_list SET field1 = ...,field2 = ... WHERE id ='some id'替换更新查询,除非您真的想要。google SQL update命令,否则不需要更新id值。 CHeck认为链接http://www.w3schools.com/sql/sql_update.asp –

+0

我不认为你应该更新id值,如果你想有一个特定的标识符的行,你应该创建一个像“标识符”列所需的数据类型,即使在更新行时,通常也会保持相同的id字段 –

0

感谢user3754262

这就是我所做的和完美的作品。

$result = $mysqli->query("SELECT * FROM exhibitor_list WHERE companyid='$iscid'"); 
if ($result->num_rows > 0){ 
    $mysqli->query("UPDATE `exhibitor_list` SET company_name='$companyname', description='$description', country='$country', website='$website', logo='$file', sponsortype='$sponsortype', flag='$countrycode', facebook='$facebook', twitter='$twitter', instagram='$insta', youtube='$youtube', facebookshow='$facebookshow', twittershow='$twittershow', instagramshow='$instashow', youtubeshow='$youtubeshow' WHERE companyid='$iscid'"); 

} else { 
    $mysqli->query("INSERT IGNORE INTO `exhibitor_list` (`id`, `company_name`, `description`, `country`, `website`, `logo`, `sponsortype`, `flag`, `facebook`, `twitter`, `instagram`, `youtube`,`facebookshow`, `twittershow`, `instagramshow`, `youtubeshow`, `companyid`) VALUES (NULL, '$companyname', '$description', '$country', '$website', '$file', '$sponsortype', '$countrycode', '$facebook', '$twitter', '$insta', '$youtube', '$facebookshow', '$twittershow', '$instashow', '$youtubeshow', '$iscid')"); 

}