Подтвердить что ты не робот

Вставить команду в mysql

У меня есть таблица базы данных, из которой, когда я выбираю данные с именем пользователя и паролем, он работает, но когда я вставляю некоторые данные в эту таблицу с одинаковым именем пользователя и паролем, это показывает мне ошибку

INSERT command denied to user 'username'@'localhost' for table 'tablename'

Я искал с помощью Google, а у кого-то была такая же проблема с размером db. Я проверил свой db, и когда я перехожу непосредственно к phpmyadmin для вставки данных в таблицу, он работает, но когда я вызываю запрос в таблицу из PHP script, он дает мне ошибку.

4b9b3361

Ответ 1

Это проблема с разрешениями. Войдите в приглашение MySQL с пользователем, которым работает приложение, и введите этот запрос:

SHOW GRANTS;

Это покажет вам привилегии (grants в MySQL-talk), которые имеет текущий пользователь. Я предполагаю, что вы не увидите привилегии INSERT для данной таблицы. Вам понадобится root-пользователь, чтобы предоставить вам разрешение, выполнив этот запрос:

GRANT INSERT ON 'db'.'tablename' TO 'username'@'localhost'

Ответ 2

У меня была аналогичная проблема после переноса моего сайта с одной учетной записи хостинга на другую. Проблема была вызвана SQL-запросом (INSERT), который ссылался на старую базу данных. заменив старый db новым именем db (или просто удалив имя db в целом), решила проблему. Но эта ошибка заставила людей поддержать мою хостинговую компанию.

Пример:

INSERT INTO old_db_name.table_name ( ) VALUES ();

Изменено на:

INSERT INTO new_db_name.table_name ( ) VALUES ( );

Надеюсь, это поможет и имеет смысл.

Ответ 3

Проверьте код SQL.

И просто удалите dbName, если у вас есть.

Пример:

insert into `dbName`.`tableName` ( columns ) values ( values );

Изменить на:

insert into `tableName` ( columns ) values ( values );

Ответ 4

Это также случилось со мной, и проблема в том, что когда вы вызываете команду INSERT в вашем php файле, вы должны указать другую базу данных.

Короче, найдите, где находится ваша команда INSERT, и проверьте часть your_database_name ниже

"INSERT INTO \`your_database_name\`.\`your_table_name\`

Это может решить вашу проблему. Конечно, если вам предоставлены все привилегии.

Ответ 5

В вашем запросе вы можете использовать имя таблицы с именем базы данных "INSERT INTO DB_NAME.table_name...", где у пользователя базы данных нет разрешений на вставку для DB_NAME. Таким образом, эта ошибка возникает, потому что запрос указывает на таблицу другой базы данных.

Вам нужно удалить имя базы данных или использовать правильное имя базы данных.

Ответ 6

У меня была такая же проблема.

Наш хостинг-провайдер mysql удалил разрешение на вставку, когда достигнут объем max db.

Используя

SHOW GRANTS;
Команда

(упомянутая в ответе выше) в mysql помогла мне понять это.

Мы использовали JAWS DB MYSQL, но другие размещенные провайдеры mysql могут использовать тот же метод.

Ответ 7

Убедитесь, что у вас есть открытое соединение с базой данных.

Если у вас есть отдельные функции для подключения к базе данных и для значений вставки проверьте подключение к базе данных открыто или нет.