我有下表:
CREATE TABLE `Plot` (
`idPlot` int(11) NOT NULL,
`ListPrice` decimal(9,2) DEFAULT NULL,
`WebPrice` decimal(9,2) DEFAULT NULL,
`BottomPrice` decimal(9,2) DEFAULT NULL,
PRIMARY KEY (`idPlot`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
如果传递空字符串,我希望在十进制字段中将值存储为NULL。我似乎只能存储0.00。
我使用Meekrodb进行更新:
$db->update('Plot', array(
'ListPrice' => $one['ListPrice'],
'BottomPrice' => $one['BottomPrice'],
'WebPrice' => $one['WebPrice']
), "idPlot=%s", $one['idPlot']);
我的输入数组如下所示:
Array
(
[idPlot] => 6
[ListPrice] => 99,999.00
[BottomPrice] =>
[WebPrice] =>
)
Meekro跑道:
UPDATE `Plot` SET `ListPrice`='99999.00', `BottomPrice`='', `WebPrice`='' WHERE idPlot='6'
我得到了:
Array
(
[0] => Array
(
[idPlot] => 6
[ListPrice] => 99999.00
[WebPrice] => 0.00
[BottomPrice] => 0.00
)
)
存储在数据库中。
有没有办法让它用NULL而不是0.00 ???
填充字段由于
答案 0 :(得分:1)
请注意空字符串之间的区别:
$foo = '';
...和NULL
值:
$foo = NULL;
print_r()功能不显示差异;您需要使用var_dump()来准确转储变量:
$data = array('', NULL);
print_r($data);
var_dump($data);
Array
(
[0] =>
[1] =>
)
array(2) {
[0]=>
string(0) ""
[1]=>
NULL
}
答案 1 :(得分:1)
我相信您必须将值插入为NULL而不引用