2011-11-10 20 views
5

To powinien być naprawdę prosty proces, ale z jakiegokolwiek powodu, nie jestem w stanie dodać kolumnę do tabeli MySQL. Oto moja składnia:MySQL nie pozwól mi dodać kolumna

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

Próbowałem wielu drobnych zmian, takich jak dodanie KOLUMNA do zapytania po ADD. Nie ma błędów MySQL, ale kończy się skrypt i echa "nie udało się".

Błąd jest:

polecenie ALTER odmówiono użytkownika 'webuser' @ 'localhost'

Czy to możliwe, aby zablokować stół przed zmianą?

+4

Co mówi mysql_error()? –

+1

Skąd wiesz, że nie ma błędów? 'echo mysql_error();' –

+0

Dodałem echo mysql_error() i otrzymałem to: polecenie ALTER odmówione użytkownikowi 'webuser' @ 'localhost' dla tabeli 'game_licenses' – user1034772

Odpowiedz

6

Nie masz uprawnień, aby to zrobić.

Upewnij się, że masz uprawnienie alter dla tej tabeli.

Czy superuser (root) wykonać następujące czynności:

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

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

P.S. Czy na pewno chcesz, aby normalni użytkownicy mogli wydawać oświadczenia o wartościach alter?
Lepszą opcją może być wydanie instrukcji alter jako root, a nawet lepiej, aby utworzyć konto administratora, które ma pełne prawa do bazy danych, ale nie pełne prawa do żadnej innej bazy danych.

+0

Tak, zrobię to. Dziękuję wszystkim za twoje odpowiedzi. – user1034772