#php #mysql #testing #command-line #mysqli
#php #mysql #тестирование #командная строка #mysqli
Вопрос:
У меня есть PHP-скрипт с одним запросом выбора и несколькими подготовленными операторами обновления. Есть ли способ запустить скрипт в тестовом режиме, чтобы в базу данных не записывались изменения?
Ответ №1:
Вы можете обернуть все это в транзакцию, а затем откатить транзакцию после выполнения других тестовых запросов.
Это, или вы удаляете соответствующие таблицы и восстанавливаете дамп после каждого теста, чтобы поддерживать согласованность среды между каждым запуском.
Ответ №2:
Вы можете использовать транзакции с фиксацией и откатом.
Ответ №3:
Насколько я знаю, нет.
Я предлагаю сделать резервную копию данных.
Добавьте одну вещь, восстановите резервную копию, чтобы увидеть, были ли отменены ваши изменения, и выполните тестовый запуск, зная, что у вас есть резервная копия.
Ответ №4:
Прежде всего, тестовый запуск должен выполняться, ну, в тестовой базе данных, где вы можете беспрепятственно запускать запросы.
Однако, если все ваши запросы, изменяющие данные, находятся в таблицах с поддержкой InnoDB / транзакций, и ни один запрос не выдает неявную фиксацию, вы можете обернуть их в транзакцию и откатить / просто не фиксировать их.
Комментарии:
1. Я не хочу уничтожать свою тестовую базу данных… давайте просто забудем о том, как легко создавать тестовые базы данных для этого вопроса. 🙂
2. Хехе, они должны: P. Но хорошо. перейдите к уже трижды упомянутым транзакциям, если вы действительно не можете ;).