如何将日期和其他变量绑定到 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)的主要内容,如果未能解决你的问题,请参考以下文章

SQL DB2 如何将日期变量应用于内部查询?

创建表时绑定变量?

如何从 ajax 查询将数据绑定到 kendoui 网格?

如何打印将发送到 oracle 的 sql 查询

如何将 PHP 逗号分隔的字符串集成到 SQL 查询中?

MySQL查询中如何实现弹窗输入变量?