【发布时间】:2015-09-28 13:35:44
【问题描述】:
这是一些奇怪的行为。在 WP 站点中,有这段代码可以用日期字符串更新表格。
奇怪的是,有时字符串 ($today) 会被添加到数据库中,而其他时候则不会(NULL 值)。
数据库是 MySQL。
另一个字段 (active) 每次都会正确更新。
$today = date('Y-m-d',time());
$upd=$my_db->prepare("UPDATE my_table SET active=1, my_date='".$today."' WHERE field_number=?");
$upd->bindParam(1, $field_number, PDO::PARAM_INT);
$upd->execute();
有人看过吗?我正在为此扯掉我的头发......我添加了一个小型业余解决方法,我不知道它是否会起作用:
将date('Y-m-d',time()); 替换为date('Y-m-d', current_time( 'timestamp' ));,即使用WP 的时间戳功能...虽然这应该没有必要...
【问题讨论】:
-
不知道这是否有帮助,但是您不必将 time() 传递给日期,如果第二个参数为空,则它会自动获取当前时间。 mysql中列的数据类型是什么?
-
你真的必须在服务器端计算日期时间,而不是在数据库层吗?我的意思是,简单的有什么问题...
UPDATE my_table SET active=1, my_date=CURDATE() WHERE field_number=?? -
@raina77ow 这确实是一个很好的建议。谢谢。我会检查一下。与此同时,你可以回答这个问题,我会在几天后回来选择一切是否正常。
-
你能得到一个数据的例子吗?它工作的时间和不工作的时间? (当然不要忘记包含
$field_number的值。鉴于您所描述的,我看不出日期的东西是如何工作的,所以我们可能需要更多细节来弄清楚发生了什么...) -
没有具体的动机,要么日期被记录,要么为空。查询执行并设置了活动标志,但没有日期。除了这个查询之外,没有其他方法可以设置活动标志。