UPDATE上的TIMESTAMP不能与PHP一起使用

时间:2016-01-18 12:08:18

标签: php mysql timestamp

我有一个 feeddate 列,其中包含以下信息..

  

类型:时间戳
  属性:更新时CURRENT_TIMESTAMP
  默认值:CURRENT_TIMESTAMP

当我使用PHP INSERT INTO 使用此代码的行时..

$badgefeed = "INSERT INTO d VALUES ('','".$userID."','Badge','','".$badgeNAME."','".$badgeTYPE."','".$badgelv."','','')";
$badgefeedQ = mysql_query($badgefeed);

(feeddate位于NULL的最后一列)

此Feeddate不会更新,如有效00:00:00
但是当我使用PHP来更新表格中已有的东西时,它会起作用。

我的feeddate结构是否有任何问题或者INSERT代码不正确?

2 个答案:

答案 0 :(得分:0)

您的查询应该是:

$badgefeed = "INSERT INTO d VALUES ('','".$userID."','Badge','','".$badgeNAME."','".$badgeTYPE."','".$badgelv."','')";

在MySQL中使用时间戳作为默认值时,不要使用最后一列的任何值。只需省略查询中的最后一个(空白)值即可。以这种方式,相关列的值将被视为空,因此将使用默认时间范围。

答案 1 :(得分:0)

Insead ''使用null 这样,mysql管理值本身。

如果指定任何值,则无论其他触发器设置如何,服务器都将获取您的值。

如果您不在insert语句中包含该列或将其留空(null),则服务器将根据默认值设置该列。在这种情况下,默认值为on update CURRENT_TIMESTAMP