2016-02-29 99 views
0

我有一個MySQL查詢在那裏我通過改變表添加到表列,但它拋出一個錯誤Error updating record: Champ 'rating' inconnu dans field listMySQL的 - ALTER TABLE如果不存在

現有的表列

id int(11)   
script_url text  
date varchar(4) 
rateing varchar(4) 
photo varchar(4) 
dateformat varchar(4) 
page_limit int(4) 
proj_desc varchar(4) 
companyname varchar(4) 
text_color varchar(255) 
citation_color varchar(255) 
bg_color varchar(255) 
border_color varchar(255) 
custom_css blob 
ratingsformat varchar(250) 
version varchar(250) 
添加列

查詢

$col = mysqli_query($link, "SELECT proj_desc,companyname,text_color,citation_color,bg_color,border_color,ratingsformat,version,rating,customratings,speed,pagination,global_option FROM 'setting'"); 
if (!$col){ 
    mysqli_query($link, "ALTER TABLE `setting` 
     ADD COLUMN IF NOT EXISTS `proj_desc` VARCHAR(255) , 
     ADD COLUMN IF NOT EXISTS `companyname` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `text_color` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `citation_color` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `bg_color` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `border_color` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `ratingsformat` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `version` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `rating` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `customratings` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `speed` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `pagination` VARCHAR(255), 
     ADD COLUMN IF NOT EXISTS `global_option` VARCHAR(255), 
     DROP `custom_css` blob 
     " 
    ); 
} 

錯誤或 錯誤更新記錄:冠軍'評級'inconnu丹田場名單

我做錯了什麼。

+2

自動換行關'quotes'形成'表name'改用'backtick'!在'global_option FROM「設置」「)' – Saty

+0

爲什麼在選擇查詢設置報價?請從‘設置’單引號來設置和請仔細檢查rateing的拼寫:)它應該是等級iguess。 –

+0

爲什麼你在倒車結果(!$ COL),請檢查rateing拼寫。我的意思是查詢似乎沒有任何不同之處了Syntex查詢錯誤 –

回答

2

我已經改變了代碼下for循環中的所有列都是VARCHAR處理和使用反引號制定。

$col_arr = array( 
    'proj_desc', 
    'companyname', 
    'text_color', 
    'citation_color', 
    'bg_color', 
    'border_color', 
    'ratingsformat', 
    'version', 
    'rating', 
    'customratings', 
    'speed', 
    'pagination', 
    'global_option' 
); 

foreach ($col_arr as $column_field) { 
    $col = mysqli_query($link, "SELECT `$column_field` FROM `setting`"); 
    if(!$col){ 
     mysqli_query($link, "ALTER TABLE `setting` 
      ADD `$column_field` VARCHAR(255)" 
     ); 
    } 
} 

讓我知道這段代碼是否正確。