如何将日期和其他变量绑定到 php sql 查询? (MySql)
Posted
技术标签:
【中文标题】如何将日期和其他变量绑定到 php sql 查询? (MySql)【英文标题】:How to bind dates and other variables to php sql query? (MySql) 【发布时间】:2011-06-16 11:29:49 【问题描述】:我的站点中有几个 db 调用,其中 bind_variables 运行良好。但是,我可以在文档中为命令找到正确的日期符号:
$query->bind_param("ssi",...);
我不想这样做:
$db->query('SELECT item FROM table WHERE something='.$something);
因为这是字符串操作,而不是绑定。 (在绑定中,查询留下了“?”,这使得查询更快,因为 DB 仅在不同的 cariables 中看到它们是相同的。)
如果我不是很清楚,我只想对日期变量类型做与this 相同的操作。
【问题讨论】:
如果我理解正确,请查看:***.com/questions/805828/…。看起来您可以将其视为字符串。 但是您将日期作为字符串插入。这是好的做法吗? 【参考方案1】:我上面给出的评论的一些额外信息:
如果我理解正确的话 看着: Using mysqli bind_param with date and time columns?。 看起来你可以治疗它 作为一个字符串。
如果您想使用bind_param
进行操作,这是我知道的唯一方法,我没有发现任何问题。如果 mysql 收到格式错误的日期,它将在您的表中插入一个 0000-00-00 值。
你能告诉我你认为可能是什么问题吗?如果您将其作为普通查询插入,您也可以使用与字符串相同的语法。
【讨论】:
【参考方案2】:对于日期,您必须在调用 bind_param 之前对其进行格式化:
$query->bind_param('s', $date->format('Y-m-d H:i:s')); // assuming $date is a DateTime object
【讨论】:
【参考方案3】:日期应绑定为格式为MySQL
接受 (yyyy-mm-dd
) 的字符串。
【讨论】:
完全没有,只是显示Mysql不会拒绝yy-mm-dd。 ??但你说这不是个好主意?那么为什么你把它作为一个答案呢?以上是关于如何将日期和其他变量绑定到 php sql 查询? (MySql)的主要内容,如果未能解决你的问题,请参考以下文章