【问题标题】:Inserting dateTime into mysql won't work将 dateTime 插入 mysql 将不起作用
【发布时间】:2015-01-10 23:30:16
【问题描述】:

我正在尝试插入一个日期(用户的加入日期)我使用此代码:

$dateTime = new DateTime();
$date = $dateTime->format('Y-m-d H:i:s');

$query = $this->_pdo->prepare('INSERT INTO web_users VALUES(:joinedate)'); 
$query->bindParam(':joinedate', $date);
$query->execute();

这是在 pdo 中,当我执行它时,它只会在数据库中设置 null。数据库列是一个日期时间,所以它应该可以工作。

希望有人可以帮助我!

【问题讨论】:

  • 不确定这是否有帮助,但您可以尝试将 bindParam 语句放在实际查询之前..
  • 您没有指定任何字段,因此除非您的 web_users 表中只有一个日期/时间字段,否则查询将不起作用。如果您只是插入当前日期/时间,为什么还要麻烦 php 端的日期摆弄? insert ... values (now()) 也可以。
  • 如果 joinate 是我唯一的领域,那将无关紧要。其次,这不是唯一需要插入日期的东西。而且它并不总是 now() 日期。
  • 在查询前绑定绝对不行。

标签: php mysql datetime pdo insert


【解决方案1】:

正如@Marc B 所说,除非您只有一列,否则您需要指定列。你说的是

$query->executy();

应该是

$query->execute();

你这里有一个错字:

:joinedate is not like in bind_param :joindedate

代码:

$query = $this->_pdo->prepare('INSERT INTO web_users (column) VALUES(:joinedate)'); 
              //^are you sure this is right? 
$query->bindParam(':joinedate', $date);
$query->execute();

【讨论】:

  • 这没有帮助,仍然有同样的问题。
  • 如果这没有帮助你需要展示你如何连接到你的数据库
  • 这不是必需的,因为我所做的其他一切都有效。我把它显示的所有其他内容,只有日期时间的东西没有。
  • 好吧,如果您检查了我的答案中的所有内容(请记住,我更新了它,因为我发现了一些其他问题)错误在其他地方......您问题代码中的其他所有内容都可以。还要确保哪个是您的日期时间列的默认值,如果它是一个
  • 我在不同的课程中也犯了一些奇怪的错字,谢谢你的帮助!非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多