如何将日期和其他变量绑定到php sql查询? (MySQL的)

时间:2011-01-27 11:10:17

标签: php sql mysql

我的网站中有几个db调用,bind_variables工作正常。但是,我可以在文档中为命令找到Date的正确符号:

$query->bind_param("ssi",...);

我不想做类似的事情:

$db->query('SELECT item FROM table WHERE something='.$something);

因为这是字符串操作,而不是绑定。 (在绑定时,查询留有“?”,这使得查询更快,因为DB只能看到它们与不同的cariables相同。)

如果我不是很清楚,我希望只使用日期变量类型与this相同。

3 个答案:

答案 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)格式绑定为字符串。