即時具有以下代碼:如何手動轉義mySQL的布爾值在CakePHP中插入數據庫?
/** @var DboSource $db */
$db = $this->getDataSource();
var_dump($db->value($open, 'boolean'));
die;
$this->query(
'INSERT INTO foo(`client_id`, `open`, `modified`, `created`) VALUES(:clientId, :open, NOW(), NOW()) ON DUPLICATE KEY UPDATE modified = now();',
[
':clientId' => $db->value($clientId, 'integer'),
':open' => $db->value($open, 'boolean')
]
);
$open
是一個布爾值,則'open'
-column被定義爲tinyint(1)
。當用$db->value($open, 'boolean')
包裝$ open時,結果爲'1'
,'0'
(請參閱單引號)。
不幸的輸出導致與open = false
一個新的記錄(如'1'
插入不正確的true
)
如果我使用$db->boolean($open)
作爲選項,一切都正常工作。我想$db->value()
也應該做同樣的工作嗎?