1

所以我在 MySQL 中有一个列虽然 PHPMyAdmin 看起来像这样

PHPMyAdmin 拍摄

当我通过 PHPMyAdmin 插入表中并且没有在时间列中放入任何内容时,它可以工作并放入时间,但是当我使用以下脚本通过 PHP 进行操作时

mysql_query("INSERT INTO `products` 

     VALUES ('', '$title', '', '$photo', '$price', '$details', '$description_short', '$description', '$dimensions', '$colour', '$scatid', '$type', '$brand', 'Y', '$size')") ;  

(第三个''是时间列)似乎将时间戳设置为 0000-00-00 00:00:00

我环顾四周,似乎在浏览其他一些 Stack Overflow 帖子时所做的一切都是正确的。

预先感谢您的帮助

4

6 回答 6

2

因为你把它设为空白''

如果您希望它是当前时间戳,那么查询应该是

INSERT INTO products(list of column_name except time column_name) values (values of list of columns present in column list)

您还可以NOW()用于在数据库中插入日期和时间

于 2013-04-29T10:18:37.617 回答
2

可能是不要使用''可能是一个问题使用

NOW()
于 2013-04-29T10:19:12.700 回答
1

您正在时间戳列中插入一个空白 (0) 值。

你可以:

1 - 修改您的查询以排除时间戳列:

插入(foo,bar)值(“val1”,“val2”)

2 - 在值内的第三个位置用 CURRENT_TIMESTAMP 替换 ""

于 2013-04-29T10:22:17.160 回答
1

你实际上有两个选择:

选项1:

明确使用“CURRENT_TIMESTAMP”(或其他人所说的“NOW()”),如下所示:

"INSERT INTO `products` VALUES ('', '$title', 'CURRENT_TIMESTAMP', '$photo', '$price', '$details', '$description_short', '$description', '$dimensions', '$colour', '$scatid', '$type', '$brand', 'Y', '$size')"

选项2:

隐式使用默认值。要使用它,您需要指定要插入的列(在表名“products”和关键字 VALUES 之间),跳过列列表和值列表中的时间戳列。

出于调试目的,我个人更喜欢选项 2(您可以立即查看哪些列用于哪些值,反之亦然,而无需查看 db 架构)

于 2013-04-29T10:22:57.100 回答
1

尝试将默认值设置为CURRENT_TIMESTAMP而不是将其放入属性中。

于 2013-04-29T10:24:18.293 回答
1

使用 NOW() mysql 命令作为时间戳列的值

mysql_query("INSERT INTO `products` VALUES ('', '$title', NOW(), '$photo', '$price', '$details', '$description_short', '$description', '$dimensions', '$colour', '$scatid', '$type', '$brand', 'Y', '$size')") ; 
于 2013-04-29T10:29:32.237 回答