【发布时间】:2017-04-24 18:06:39
【问题描述】:
我在 joomla 中工作,并且在未设置时无法存储 NULL 日期值而不是 0000-00-00。 在 MySql 表中,日期字段设置为默认值 NULL,并且选中了 null 复选框。 我尝试了在这里找到的所有建议,但没有成功。
这里是我的日期变量:
if (isset($fbpage['endTime'])):
$fbdataE = (new DateTime($fbpage['endTime']))->format('Y-m-d');
else : $fbdataE = NULL ; endif;
这里是我存储在 MySql 中的代码
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$columns = array(
'whateverelse',
'enddates',
'whateverelse'
);
$values = array(
$db->quote($whateverelse),
$db->quote($fbdataE),
$db->quote($whateverelse)
);
$query
->insert($db->quoteName('#__table'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->execute();
有什么建议吗?
提前致谢。
【问题讨论】:
-
如果
->quote()与PDO::quote()相同,如果与 NULL 一起使用,它将创建一个带引号的空字符串''。您最好了解如何在您的 DB 类中使用准备好的语句。 -
在编写 SQL 命令字符串时,null 应该是字符串
$var = 'null';,因为当null值被强制转换为string时,它会变成一个空值。但是对于您的 SQL,它不应该是string。UPDATE .... column = null(正确)与UPDATE .... column = "null" (incorrect)不同。