【问题标题】:How to Convert a Date in String to match MySql date in PHP如何转换字符串中的日期以匹配 PHP 中的 MySql 日期
【发布时间】:2014-07-14 05:07:12
【问题描述】:

我有一个表单,我将日期保存为隐藏字段并在表单提交时传递日期值。 现在的问题是,当我在 MySQL 查询中使用这个 $date 变量时,它与表中的任何内容都不匹配。

我的查询是:

$query = "DELETE FROM #__table WHERE zone_id = {$zid} AND user_id <> {$uid} AND date = {$date}";

表中的日期字段是“DATE”数据类型,而$date变量中存储的日期值是'STRING'类型。

有什么方法可以匹配它们并从查询中获取结果?

【问题讨论】:

  • 您必须向我们展示日期输入和所需输出是什么。
  • 你的 PHP 日期字符串是什么样子的?
  • 日期字符串看起来像 2014-07-14,存储在数据库中的是 2014-07-14,但它们的数据类型不同
  • 当您在 MySQL 的 where 子句中过滤日期时,您将日期写成字符串(例如 ... where myDate='2014-07-14')。我对 PHP 不是很熟悉,但是,至少在 Java 中,我可以将日期的字符串表示形式传递给准备好的语句(是的,我使用 setString())并且它运行良好。用字符串试试...应该可以工作
  • 您必须将日期值放在单引号中:... AND date = '{$date}'"; 否则 2014-07-14 将被评估为 1993,这不是您想要的。更好地使用带参数的准备好的语句。这也将解决 sql 注入漏洞。

标签: php mysql joomla2.5


【解决方案1】:
 $db = JFactory::getDBO(); 
$query = 'DELETE FROM  #__table WHERE zone_id = '.$db->Quote($zid).' AND user_id <> '.$db->Quote($uid).' AND date = '.$db->Quote( $date );
$db->setQuery( $query );
$db->query();

【讨论】:

  • 出了什么问题?
  • 点击edited XX mins ago链接查看帖子的修订历史。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
  • 1970-01-01
相关资源
最近更新 更多