2015-10-19 52 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')"); 

}