2011-11-10 13 views
5

Questo dovrebbe essere un processo molto semplice ma, per qualsiasi motivo, non riesco ad aggiungere una colonna a una tabella MySQL. Ecco la mia sintassi:MySQL non mi consente di aggiungere la colonna

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

Ho provato più piccole modifiche come aggiungere COLONNA alla query dopo ADD. Non ci sono errori MySQL ma termina lo script ed echos "non è riuscito".

L'errore è:

comando ALTER negato all'utente 'webuser' @ 'localhost'

E 'possibile bloccare un tavolo venga alterato?

+4

Cosa dice mysql_error()? –

+1

Come fai a sapere che non ci sono errori? 'echo mysql_error();' –

+0

Ho aggiunto echo mysql_error() e ho ottenuto questo: comando ALTER negato all'utente 'webuser' @ 'localhost' per la tabella 'game_licenses' – user1034772

risposta

6

Non hai i privilegi per farlo.

Assicurarsi di disporre del privilegio alter su tale tabella.

Avere il superuser (root) eseguire il seguente:

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

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

P.S. Sei sicuro di volere che gli utenti normali siano in grado di emettere dichiarazioni alter?
L'opzione migliore potrebbe essere quella di rilasciare l'istruzione alter come root o, ancora meglio, di creare un account amministratore con diritti completi sul database, ma non i diritti completi su nessun altro database.

+0

Sì, lo farò. Grazie a tutti per le vostre risposte. – user1034772

Problemi correlati