2011-11-10 59 views
5

Đây phải là một quá trình thực sự đơn giản nhưng vì bất kỳ lý do gì, tôi không thể thêm cột vào bảng MySQL. Đây là cú pháp của tôi:MySQL sẽ không cho phép tôi thêm cột

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

Tôi đã thử nhiều thay đổi nhỏ như thêm COLUMN vào truy vấn sau ADD. Không có lỗi MySQL nhưng hoàn thành kịch bản và lặp lại "nó không thành công".

Lỗi này là:

ALTER lệnh từ chối để người dùng webuser '@ 'localhost'

Có thể khóa một bảng không bị thay thế?

+4

Điều gì nói mysql_error()? –

+1

Làm thế nào để bạn biết không có lỗi? 'echo mysql_error();' –

+0

Tôi đã thêm echo mysql_error() và nhận lệnh này: ALTER lệnh bị từ chối cho người dùng 'webuser' @ 'localhost' cho bảng 'game_licenses' – user1034772

Trả lời

6

Bạn không có đặc quyền để làm như vậy.

Đảm bảo bạn có đặc quyền alter trên bảng đó.

Có superuser (root) thực hiện như sau:

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

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

P.S. Bạn có chắc chắn muốn người dùng bình thường có thể phát hành báo cáo alter không?
Tùy chọn tốt hơn có thể ban hành câu lệnh thay đổi dưới dạng thư mục gốc, hoặc thậm chí tốt hơn để tạo tài khoản quản trị có đầy đủ quyền trên cơ sở dữ liệu, nhưng không đầy đủ quyền đối với bất kỳ cơ sở dữ liệu nào khác.

+0

Vâng, tôi sẽ làm điều đó. Cảm ơn tất cả mọi người về câu trả lời của bạn. – user1034772

Các vấn đề liên quan