Не сохраняется зачение в поле с типом enum

Yura

Новичок
Не сохраняется зачение в поле с типом enum

Есть таблица в БД. Данные для записи передаются все (перед инсертом вывел на экран). Некоторые поля - enum('1','2','3','4','5'), enum('ON,'OFF'). В них почему-то ничего не записывается. Во все остальные записываются нужные значения, а в эти ничего. В чем может быть проблема?
 

usascha

Новичок
если для enum('ON,'OFF') передается значение от неотмеченного чекбокса, то значение "off" не проставляется, его вообще нет.

Возможно, в этом проблема.
 

Yura

Новичок
В том то и дело, что чекбокс отмечен. Абсолютно все значения, которые должны сохраняться передаются из формы. Для проверки перед инсертом я все значения вывел. Все значения с другими типами сохраняются. Я вот какой момент обнаружил (может в нем дело). У меня на компе register_globals=ON в php.ini, а вот на сервере хостера не знаю как посмотреть. По электронке они мне не ответили, а по телефону не могу дозвониться. При передаче данных из формы без $_POST['name'] (т.е., просто обычным способом - надеюсь, Вы меня поняли) на моем компе все работает и сохраняется как надо, у хостера нет (вообще параметры не передаются). Если передаю через $_POST['name'], то параметры передаются все, но не сохраняются для типа поля enum.

-~{}~ 13.09.06 18:06:

Дозвонился хостеру. Мне сказали как у них менять настройки рнр. Все заработало. Но, Все-таки, если кто знает, почему при register_globals=off такое происходит, подскажите, интересно. Может я где-то при передаче параметров из формы что-то забыл указать? Но, данные же передаются
 

usascha

Новичок
если только эта переменная не передается, то дело не в register_globals.

проверяйте что указано в значении value для чекбокса. Если вставляете его из базы, то не важно отмечен он или нет. У него есть уже значение.

Короче открывайте html вид страницы и смотрите, что присваивается.
 

zarus

Хитрожопый макак
Для ENUM полей записи вида
field1 = 1 и field1 = '1' - это разные вещи.
В первом случае, устанавливается первое значение из набора доступных значений.
Во втором случае будет установлено значение 1, если оно в наборе доступных значений, и значение по умолчанию, если 1 - не из набора.
Т.е. если field1 - ENUM('ON','OFF'), то чтобы выставить значение 'OFF' нужно прописать либо field1 = 'OFF', либо field1 = 2. Так и только так.
 
Сверху