2016-12-14 121 views
0

我正在为我的PHP项目使用Paris的Idiorm。
我想添加一些entrys与一些空值到我的mysql数据库。
例如:idiorm/paris - 将null写入数据库

$openingtime->setBegin(null); 
$openingtime->setEnd(null); 
$openingtime->setDayOfWeek(1); 
$openingtime->save(); 

的开始时间和结束列的数据库具有类型“时间”和它们可为空的。
例外的结果

+----+-------+------+-----------+ 
| id | begin | end | dayOfWeek | 
+----+-------+------+-----------+ 
| 1 | null | null |   1 | 
+----+-------+------+-----------+ 

我得到的结果是:

+----+----------+----------+-----------+ 
| id | begin | end | dayOfWeek | 
+----+----------+----------+-----------+ 
| 1 | 00:00:00 | 00:00:00 |   1 | 
+----+----------+----------+-----------+ 

ORM :: get_last_query()说,这样的事情:

UPDATE `openingtime` SET `begin` = '', `end` = '', `dayOfWeek` = '1' 

所以不是空的,idiorm /巴黎插入一个空字符串。

是否有可能添加null而不是空字符串? 感谢您的帮助!

编辑:添加 的ClassDefinition OpeningTime以下

+0

嗨!你还可以添加'OpeningTime'类定义吗? –

+0

嗨大卫,我已经添加了类定义 – MMM

+0

尝试直接使用'$ openingtime-> end = null;'看看是否有效。 –

回答

0

的问题是在制定者,更精确的功能ヶ辆()用strip_tags()我在setter方法使用。如果给定的值为空,这些函数将返回一个空字符串。
我现在的解决办法:

public function setBegin($begin){ 
    if(isset($begin)){ 
     $this->begin = htmlentities(strip_tags($begin), ENT_QUOTES); 
    } 
    else{ 
     $this->begin = null; 
    } 
} 

谢谢!