在我的数据库中,我有天为int。比我有 $ diff 这是DateTime。
$diff->format("%d");
SELECT * FROM smt WHERE day = $diff
即使我以前使用过格式,它仍然会给我这个:
可捕获的致命错误:类DateInterval的对象无法在...中转换为字符串
感谢您的回答我希望我不会错过任何愚蠢的事情。
答案 0 :(得分:1)
$diff
是一个DateInterval
对象,因此不能作为字符串进行插值或连接,因为它没有字符串表示形式。我相信您正在尝试从DateInterval的format()
方法插入结果。
尝试:
"SELECT * FROM smt WHERE day = " . $diff->format('d');
此处的查询应该是安全的SQL注入,前提是$diff
始终是DateInterval对象,但是您应该使用MySQLi或PDO的参数化查询。