我的网站中有几个db调用,bind_variables工作正常。但是,我可以在文档中为命令找到Date的正确符号:
$query->bind_param("ssi",...);
我不想做类似的事情:
$db->query('SELECT item FROM table WHERE something='.$something);
因为这是字符串操作,而不是绑定。 (在绑定时,查询留有“?”,这使得查询更快,因为DB只能看到它们与不同的cariables相同。)
如果我不是很清楚,我希望只使用日期变量类型与this相同。
答案 0 :(得分:1)
上面给出的评论的一些额外信息:
如果我理解正确的话 看着: Using Mysqli bind_param with date and time columns?。 看起来你可以放弃它 作为一个字符串。
如果你想用bind_param
这样做,这是我知道的唯一方法,我没有看到任何问题。如果mysql收到错误的格式化日期,它将在您的表中插入一个0000-00-00值。
你能告诉我你认为可能有什么问题吗?如果将其作为普通查询插入,则还使用与String相同的语法。
答案 1 :(得分:0)
对于日期,您必须在调用bind_param之前格式化它们:
$query->bind_param('s', $date->format('Y-m-d H:i:s')); // assuming $date is a DateTime object
答案 2 :(得分:0)
日期应以MySQL
接受(yyyy-mm-dd
)格式绑定为字符串。