【问题标题】:Insert DATE as DATE->Format() in Mysql在 Mysql 中插入 DATE 作为 DATE->Format()
【发布时间】:2014-01-21 14:32:01
【问题描述】:

我试图将 DATE 插入 MySQL 数据库。日期已设置为 new DateTime() 并格式化为“Y:m:d”。一个变量带有新的 DateTime,但是当将它插入到 MYSQL 中的 DATE 字段时,只插入 ceros。 DATE 字段没有得到 NULL 结果,而只是 CEROS 000-00-00。 这是我的代码。

    $bigin=date("Y-m-d");
    $datetime_bigining = new DateTime($bigin);
    $datetime_bigining->modify('-60 day');
    $datetime_bigining->format('Y:m:d');

    $insert_days= mysql_query("INSERT INTO $tocreate (date_full)  VALUES".$datetime_bigining->format('Y-m-d').");") or die(mysql_error());

【问题讨论】:

  • MySQL 不应该是$datetime_bigining->format('Y-m-d'); 吗?

标签: php mysql date datetime


【解决方案1】:

您的代码可以极大地简化(和固定):

$datetime_beginning = new DateTime('60 days ago');
$insert_days= mysql_query("INSERT INTO $tocreate (date_full)  
    VALUES ('".$datetime_beginning->format('Y-m-d')."');") or die(mysql_error());
  1. 您可以合并前三行代码
  2. 你的第四行是不必要和无用的
  3. 您有几个 SQL 语法错误(缺少括号、缺少引号)

【讨论】:

  • 只是在输入这个。 +1
  • 感谢您的回答。现在我收到一个错误,并且查询因使用您在 MYSQL_QUERY 方面的建议而我什至无法理解的错误而终止。其余的都适合您的建议。
  • 我使用了包括第一行在内的代码,但是当我尝试像这样 $datetime_bigining->modify('+1 day') 将 $datetime_beginning 增加一天时出现错误。查询与您的代码一起使用,我很欣赏它,但查询驻留在循环中,该循环将该日期增加一天数次。此时我遇到的错误是当我尝试将这一天增加一天时。有什么帮助吗?
  • 如果不知道错误是什么并查看代码,我们将无法帮助您。您可能需要提出一个新问题来显示所有这些。如果你愿意,我会尽力提供帮助。
  • 检查您的 PHP 版本。除非您拥有 5.3 或更高版本,否则 modify() 将无法工作。我最近编写的程序中遇到了类似的日期问题
【解决方案2】:

试试$datetime_bigining->format('Y-m-d'); 这是 MySQL 期望的格式。

【讨论】:

  • 还有,开始了!
猜你喜欢
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 2022-12-27
  • 1970-01-01
  • 2019-07-13
  • 2014-08-15
  • 1970-01-01
相关资源
最近更新 更多