WHERE DateInterval无法转换为字符串

时间:2014-08-01 02:34:35

标签: php mysql format

在我的数据库中,我有为int。比我有 $ diff 这是DateTime。

$diff->format("%d"); 

SELECT * FROM smt WHERE day = $diff

即使我以前使用过格式,它仍然会给我这个:

  

可捕获的致命错误:类DateInterval的对象无法在...中转换为字符串

感谢您的回答我希望我不会错过任何愚蠢的事情。

1 个答案:

答案 0 :(得分:1)

$diff是一个DateInterval对象,因此不能作为字符串进行插值或连接,因为它没有字符串表示形式。我相信您正在尝试从DateInterval的format()方法插入结果。

尝试:

"SELECT * FROM smt WHERE day = " . $diff->format('d');

此处的查询应该是安全的SQL注入,前提是$diff始终是DateInterval对象,但是您应该使用MySQLi或PDO的参数化查询。