Mysqli如果存在更新其他更新

时间:2015-10-19 13:45:16

标签: mysqli insert sql-update

现在我知道有很多关于这个主题的帖子,但不管我读了多少,我仍然无法让它发挥作用。

我有以下代码

$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'表中,它将不会更新。

我确定我的代码在某处错了,但是无法理解。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:0)

您的更新命令应替换为:

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

同样Ben Y是对的,你应该检查num_rows是否大于0而不是1。

答案 1 :(得分: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')");

 }