Doctrine Entity Manager получает ошибку только для чтения из базы данных

public function save($itemId, $invoiceName)
{
    $query = "
           INSERT INTO invoice (item_id, invoice_name)
           VALUES (" . $itemId . ",'" . $invoiceName . ")
    ";
    $connection = $this->entityManager->getConnection('master');
    return $connection->executeQuery($query);
}

Ошибка при попытке вставить в таблицу:

An exception occurred while executing ' INSERT INTO invoice (item_id, invoice_name) VALUES (10600029,'FV/1823/06/2018/SOL') ': SQLSTATE[HY000]: General error: 1290 The MySQL server is running with the --read-only option so it cannot execute this statement

Проверил подключение к БД в порядке. Пытался сохранить что-то с тем же пользователем с клиентом DBeaver DB, и все прошло нормально - сохранено без каких-либо проблем.

вы можете проверить свое разрешение пользователя MySQL.

habibun 13.06.2018 17:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
617
2

Ответы 2

вам нужно закрыть соединение, которое использовалось раньше, чтобы изменить соединение и вставить, я думаю, попробуйте что-то вроде этого:

$connection = $this->entityManager->getConnection()->close();

$query = "
       INSERT INTO invoice (item_id, invoice_name)
       VALUES (" . $itemId . ",'" . $invoiceName . ")
";
$connection = $this->entityManager->getConnection('master');
return $connection->executeQuery($query);

Даже несмотря на то, что я указал «master», запрос все время перехватывался подчиненным.

$entityManager->getConnection()->prepare('INSERT ... ')->execute();

Появился решить проблему.

Другие вопросы по теме