2016-10-11 2 views
0

Для проверки работоспособности моего кода я помещаю утверждения в различные места в моем коде.Предотвращение фиксации базы данных при утверждении отказа в php

Я хочу, чтобы это было так, что всякий раз, когда применяется запрос, транзакция базы данных не должна быть завершена (т. Е. Данные не должны быть привязаны к базе данных, а должны быть отброшены назад).

Я не мог найти никакого чистого способа достижения этого.

Я использую фреймворк кода.

Любая идея, как достичь этого?

+0

Это не то утверждение assert() для. Просто проверьте наличие ошибок и откат, если увидите его. –

+1

a db, который автоматически фиксирует транзакции при отключении, никогда не должен использоваться. нормальное поведение БД заключается в автоматическом откате, если соединение/транзакция прекращена. –

+0

@John - Да, согласитесь. Ты прав. Функциональность не должна зависеть от assert. В идеале утверждения будут отключены в процессе производства и, следовательно, предотвратят любые подобные откаты от ошибок. Поэтому мы должны явно проверять ошибки и откатываться, если возникает ошибка. – Anuj

ответ

0

Функциональность не должна быть частью утверждения. Если это так, тогда функциональность будет искажена в режиме производства, если утверждения отключены.

Мы можем выполнить дополнительную операцию с базой данных, чтобы заявить о невозможности записи и отслеживания более подробной информации об ошибке, но не должны прерывать/мешать внешним транзакциям.

Утверждения должны использоваться только как функция отладки. Вы можете использовать их для проверки работоспособности, которые проверяют условия, которые всегда должны быть ИСТИНЫ, и которые указывают на некоторые ошибки программирования, если нет, или для проверки наличия определенных функций, таких как функции расширения или определенные системные ограничения и функции.

Утверждения не должны использоваться для обычных операций во время выполнения, таких как проверка входных параметров. Как правило, ваш код всегда должен работать правильно, если проверка подтверждения не активирована.

More details

Смежные вопросы