2011-11-10 13 views
5

Esto debería ser un proceso realmente simple pero por alguna razón, no puedo agregar una columna a una tabla MySQL. Aquí está mi sintaxis:MySQL no me deja agregar la columna

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

He intentado varios pequeños cambios como la adición de columna a la consulta después de ADD. No hay errores de MySQL, pero termina el script y echos "falló".

El error es:

comando ALTER negó al usuario 'webuser' @ 'localhost'

¿Es posible bloquear una tabla de ser alterado?

+4

¿Qué dice mysql_error()? –

+1

¿Cómo sabes que no hay errores? 'echo mysql_error();' –

+0

Agregué echo mysql_error() y obtuve esto: comando ALTER negado al usuario 'webuser' @ 'localhost' para la tabla 'game_licenses' – user1034772

Respuesta

6

No tiene los privilegios para hacerlo.

Asegúrese de tener el privilegio alter en esa tabla.

Hacer que el superusuario (root) ejecute lo siguiente:

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

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

P.S. ¿Seguro que quiere que los usuarios normales puedan emitir declaraciones alter?
La mejor opción puede ser emitir la sentencia alter como root, o incluso mejor para crear una cuenta de administrador que tenga derechos completos en la base de datos, pero no derechos completos en ninguna otra base de datos.

+0

Sí, lo haré. Gracias a todos por sus respuestas. – user1034772

Cuestiones relacionadas