Как правильно обновить поле mysql с помощью NULL? - PullRequest
0 голосов
/ 04 ноября 2011

Как правильно обновить поле mysql со значением NULL при использовании переменной в запросе sql?

У меня есть переменная с именем $ timestamp.Когда он установлен на date( Y-m-d h:i:s ), я должен заключить его в кавычки, потому что я передаю строку в своем запросе MySQL.Когда для $ timestamp установлено значение NULL, запрос к базе данных содержит '' в качестве значения для $ timestamp, а поле обновляется до 0000-00-00 00:00:00.Важно сохранить это поле как NULL, чтобы показать, что процесс никогда не запускался раньше.

Я не хочу использовать now (), потому что тогда мой оператор sql не синхронизирован с моей переменной класса $ timestamp.

Я не хочу устанавливать $ timestamp в значение NULL, потому что тогда эта переменная не является точной.Это больше не NULL, это строка, содержащая слово NULL.

Что мне здесь не хватает?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011

Правильный синтаксис SQL для установки столбца в NULL:

  UPDATE Table SET Column = NULL WHERE . . .

(обратите внимание на отсутствие кавычек вокруг буквального NULL).

Выполняете ли вы это ОБНОВЛЕНИЕ, используя SQL илииспользуя какие-то рамки?Если это фреймворк, он должен распознавать значения NULL и правильно передавать их в базу данных.

0 голосов
/ 18 ноября 2011

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

Правильное решение - использовать слой абстракции базы данных, PDO (для PHP) или Active Record (используется в таких средах, как Codeignitor и Ruby on Rails).

...