Zend: Как вставить значения NULL в MySQL - PullRequest
7 голосов
/ 13 ноября 2009

Я использую Zend Framework с MySQL, Apache и Ubuntu 9.04.

Я пытаюсь вставить значения NULL в базу данных следующим образом:

$personObj->setPersonId( '1' );
$personObj->setPersonEmail('NULL');
$personObj->save();

Но 'NULL' хранится в базе данных как строка, а не NULL .

Когда я использую это:

$personObj->setPersonId( '1' );
$personObj->setPersonEmail(NULL);
$personObj->save();

Но ничего не происходит, и предыдущая запись не меняется.

Что я должен сделать, чтобы вставить значения NULL в MySQL?

Ответы [ 3 ]

17 голосов
/ 13 ноября 2009

Если вы не изменяете ни одно из значений после того, как они назначены, тогда

new $personObj->setPersonEmail(new Zend_Db_Expr('NULL'));
1 голос
/ 13 ноября 2009

Первой мыслью было бы прямое прохождение ключевого слова null без кавычек вокруг него. Как сказал павиум, кавычки вокруг него превращают его в строку.

0 голосов
/ 13 ноября 2009

Я думаю, что NULL в кавычках - это то, что делает его похожим на строку.

Я не знаю о вашем методе, но для прямой вставки через команду mysql INSERT одинарные кавычки вокруг NULL неверны.

...