【发布时间】:2014-08-01 02:34:35
【问题描述】:
在我的数据库中,我将 day 设为 int。比我得到的 $diff 是 DateTime。
$diff->format("%d");
SELECT * FROM smt WHERE day = $diff
即使我以前使用格式,它仍然给我这个:
可捕获的致命错误:DateInterval 类的对象无法在...中转换为字符串
感谢您的回答,希望我没有遗漏一些愚蠢的东西。
【问题讨论】:
在我的数据库中,我将 day 设为 int。比我得到的 $diff 是 DateTime。
$diff->format("%d");
SELECT * FROM smt WHERE day = $diff
即使我以前使用格式,它仍然给我这个:
可捕获的致命错误:DateInterval 类的对象无法在...中转换为字符串
感谢您的回答,希望我没有遗漏一些愚蠢的东西。
【问题讨论】:
$diff 是一个DateInterval 对象,因此不能作为字符串进行插值或连接,因为它没有字符串表示形式。我相信您正在尝试从 DateInterval 的 format() 方法中插入结果。
试试:
"SELECT * FROM smt WHERE day = " . $diff->format('d');
如果$diff 始终是一个 DateInterval 对象,则此处的此查询应该不会受到 SQL 注入的影响,但是您应该使用 MySQLi 或 PDO 的参数化查询。
【讨论】: