今日の注意

http://book.cakephp.org/ja/view/75/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B

にはちゃんと書いてあるんだけど、
updateAll() するときは $fields で指定した値はクォートされません。
手動でクォートしてとのことですが、通常は内部的には自動でやってるのでそれに任せた方がいいと思う。

ちょっと見てみたら、DataSource|DboSource の value() がそれっぽい。

なので AppModel に以下のメソッドをいれたら便利かなとか思いますた。

    public function quoteValue($value)
    {
        if (is_array($value)) {
            return array_map(array(&$this, 'quoteValue'), $value);
        } else {
            $db =& ConnectionManager::getDataSource($this->useDbConfig);
            return $db->value($value);
        }
    }