Какой смысл в значениях MySQL по умолчанию? Пустые поля формы создают строки нулевой длины, которые затем выдают ошибки - PullRequest
0 голосов
/ 05 ноября 2019

РЕДАКТИРОВАТЬ: Спасибо за все указатели. Я подправил, но проблемы все еще есть. Я удалил любую переменную POST, в которой в качестве значения использовалась только пустая строка, но когда я создаю экземпляр класса, я сталкиваюсь с новой проблемой ... если для атрибута нет значения, для него автоматически устанавливается значение NULL. Есть ли способ обойти это?

ОТВЕТ НА МОЙ СОБСТВЕННЫЙ ВОПРОС: Сначала значения по умолчанию MySQL используются только в том случае, если ничего не задано - даже не пустая строка. Во-вторых, если вы создаете экземпляр класса и не назначаете значение атрибуту, тогда этот атрибут устанавливается на NULL, нравится вам это или нет! (Если кто-нибудь знает способ переопределить это, что было бы здорово.)

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

Сейчас я перестраиваю сайт и у меня есть несколько хороших «автоматизированных» форм, которые позволяют мне быстро заполнять таблицы в БД для тестирования. (Они извлекают имена полей из классов, которые отображаются на таблицы БД. Быстро и грязно, но работает.)

Одна из неприятностей в **** заключается в том, что пустое поле, где для этого столбца установлено значение NOT NULLВинт вещи вверх. (Не большая проблема на данном этапе, поэтому я просто пишу вещи.) Например,

`messageOrder` ENUM('random','sequential') NOT NULL DEFAULT 'sequential'

Я должен ввести «squential» в поле «messageOrder» input, чтобы получить значение по умолчанию.

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

1) существует ли автоматизируемое решение проблемы и
2) когда вступают в силу значения по умолчанию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...