Mysqlの環境で検証してみましたが、NULLに変換されているみたいですね。
$data = array('test1' => '0');
$conditions = array('TTable.test2' => '0');
$this->TTable->updateAll($data, $conditions);
SQLログ:
UPDATE test
.t_test
AS TTable
SET TTable
.test1
= 0 WHERE TTable
.test2
= 0;
$data = array('test1' => '0');
$conditions = array('TTable.test2' => '');
$this->TTable->updateAll($data, $conditions);
SQLログ:
UPDATE test
.t_test
AS TTable
SET TTable
.test1
= 0 WHERE TTable
.test1
IS NULL;
テーブル定義
CREATE TABLE IF NOT EXISTS t_test
(
test1
int(11) DEFAULT NULL,
test2
int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
環境によっては多少動作が異なるかもしれませんが・・・
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。