У меня есть запрос, который написан динамически (OO PHP через Joomla), чтобы вставить некоторые значения в базу данных MySQL. Форма, которую заполняет пользователь, имеет поле для суммы в долларах, и если они оставят это поле пустым, я хочу, чтобы значение, поступающее в систему, было равно NULL. Я записал запрос в журнал ошибок во время его работы; Вот как выглядит запрос:
INSERT INTO arrc_Voucher
(VoucherNbr,securityCode,sequentialNumber, TypeFlag, CreateDT, ActivatedDT, BalanceInit, BalanceCurrent, clientName)
VALUES
('6032100199108006', '99108006','12','V','2010-10-29 12:50:01','NULL','NULL','NULL','')
Когда я смотрю в таблицу базы данных, хотя ActivatedDT правильно установлен в NULL, BalanceInit и BalanceCurrent оба равны 0,00. Поле ActivatedDT является датой и временем, в то время как два других являются десятичными (18,2), и все три установлены в структуре таблицы как значение по умолчанию NULL.
Если я выполню запрос, подобный этому:
UPDATE arrc_Voucher
SET BalanceInit = null
WHERE BalanceInit like "0%"
... он устанавливает значение в null, так почему же первоначальный запрос вставки не делает этого? Это потому что нуль в кавычках? И если да, то почему он настроен правильно для ActivatedDT?