2011-11-10 63 views
5

這應該是一個非常簡單的過程,但無論出於何種原因,我無法將列添加到MySQL表中。這裏是我的語法:MySQL不會讓我添加列

$query = "ALTER TABLE game_licenses ADD lifetime VARCHAR(255) AFTER expire_date"; 
$result = mysql_query($query); 
if (!$result) { 
    echo "it failed"; 
} 
else { 
    echo "success"; 
} 

我已經嘗試了多個小改動,例如在ADD後添加COLUMN到查詢。沒有MySQL錯誤,但完成腳本並回應「失敗」。

的錯誤是:

ALTER命令拒絕用戶WEBUSER'@ 'localhost' 的

是否有可能被更改鎖定表?

+4

什麼說mysql_error()? –

+1

你怎麼知道沒有錯誤? 'echo mysql_error();' –

+0

我加了echo mysql_error()並得到了這個:ALTER命令被拒絕給用戶'webuser'@'localhost'表'game_licenses' – user1034772

回答

6

您沒有權限這樣做。

請確保您具有該表上的alter權限。

具有超級用戶(root)執行以下操作:

GRANT ALTER ON dbname.game_licences TO `webuser`@`localhost` 

參見:http://dev.mysql.com/doc/refman/5.1/en/grant.html

P.S.您確定您希望普通用戶能夠發出alter聲明嗎?
更好的選擇可能是以root用戶的身份發佈alter語句,或者甚至更好地使管理員帳戶對數據庫擁有完全的權限,但對其他數據庫沒有完全的權限。

+0

是的,我會這樣做。感謝大家的迴應。 – user1034772