Чем плохо возникновение ошибок в работе с БД?

311
26 ноября 2016, 20:22

Здравствуйте. У меня есть база данных, в которой время от времени меняются столбцы(добавляются, удаляются). Php-скрипт занимается тем, что делает команды UPDATE. Так вот, мне по сути нужно так: если столбец и запись есть, то они обновляются, если же их нет, то не происходит ничего.

Собственно вопрос: можно ли обращаться к БД без проверок, чтобы если столбца нет, то происходила бы ошибка и на нее никак не реагировать? Или же нужно делать проверки? Тогда ошибок не будет, но будут затраты по производительности. Как правильнее?

Answer 1

Вопрос довольно странный. Как сказал D-side в нормальной ситуации столбцы редко меняются.

Можно ли обращаться к БД без проверок (иммеются в виду предпроверки)

Да, можно и даже желательно. Проверка того что столбец существует не даёт гарантий что он будет существовать во время запроса на обновление (или что соединение с базой не отвалится сразу после проверки).

Но, проверять произошла ли ошибка в запросе нужно всегда (ответ сервера). Ошибки в запросах могут происходить по множеству разных причин, от ошибки в самом запросе (sql синтаксис, несуществующее поле ...) до отказа диска или нехватки места (см. коды ошибок). Если вы знаете что в данном запросе иногда может происходить ошибка и это нормально, то вы должны проверить что запрос провалился именно из-за запланированной ошибки.

Answer 2

Вообще я думаю нужно отталкиваться не от скрипта а от перечня колонок в таблице. Ну к пример. Анализируем таблицу и уже потом формируем нам нужный скрипт в зависимости от условий.

READ ALSO
Как вывести категории в тег Select

Как вывести категории в тег Select

Ребят как такой же скрипт поместить в тег SELECTЭтот скрипт у меня выводит категории на сайте

332
Подключение к удаленной базе через workbench

Подключение к удаленной базе через workbench

При попытке подключиться возникает вот такая ошибка:

410
Некорректный старт сервера

Некорректный старт сервера

При старте ubuntu 14 tomcat стартует автоматом но не видит бд и выводит 500 статус на реквесты, как можно это исправить? При рестарте из IDE все работает...

261