Коммит отката mysqli не работает с таблицей innodbPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Коммит отката mysqli не работает с таблицей innodb

Сообщение Anonymous »

Я пытаюсь настроить откат транзакций, но что бы я ни делал, вставка не откатывается.
Я подтвердил, что механизм БД — innoDB:

Код: Выделить всё

Name                            Engine  Version     Row_format
order_fulfillment_discounts     InnoDB    10         Dynamic
Сначала я пытался добавить реальные запросы, но начал объединять их в пары, когда это не сработало. Остался самый простой код:

Код: Выделить всё

$dbConnect = mysqli_connect("localhost", "root", "", "dealers");

$dbConnect->autocommit(false);
$dbConnect->begin_transaction();

$dbConnect->query("INSERT INTO order_fulfillment_discounts (fulfillment_id, order_id, discount_id, discount_type, discount_category) VALUES (1,1,1,'foo','test')");
$dbConnect->commit();
$dbConnect->rollback();
Это весь код, никаких файлов не требуется и ничего другого, обеспечивающего соединение.
Коммит работает нормально, я могу отладить и увидеть, что вставка не происходит до тех пор, пока не будет вызвана функция commit(), поэтому я знаю, что транзакции в целом работают. Результат фиксации — TRUE, и результат отката также TRUE.
Я запускаю это на локальном хосте на Mac, используя PHP 8 с Homebrew. Есть ли вероятность того, что этот параметр/разрешение предотвращает откат в целях безопасности?
Пользователь root DB имеет все разрешения, и я даже добавил пароль к базе данных, чтобы посмотреть, поможет ли это.Я запускал его как в phpstorm, так и в браузере.
Я отлаживал его, поэтому между фиксацией и откатом есть время, а также запускаю его с помощью Sleep().
Я попытались указать имя транзакции.
Все работает одинаково: фиксация всегда работает как положено, а откат — нет.

Подробнее здесь: https://stackoverflow.com/questions/792 ... nodb-table
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»