【问题标题】:How to bind dates and other variables to php sql query? (MySql)如何将日期和其他变量绑定到 php sql 查询? (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 相同的操作。

【问题讨论】:

标签: php sql mysql


【解决方案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。
      • ??但你说这不是个好主意?那么为什么你把它作为一个答案呢?
      猜你喜欢
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      相关资源
      最近更新 更多