所以我在MySQL中有一个列,但PHPMyAdmin看起来像这样
当我通过PHPMyAdmin插入到表中并且没有在时间列中放入任何内容时,它会工作并将时间放入,但是当我通过PHP使用以下脚本执行此操作时
mysql_query("INSERT INTO `products`
VALUES ('', '$title', '', '$photo', '$price', '$details', '$description_short', '$description', '$dimensions', '$colour', '$scatid', '$type', '$brand', 'Y', '$size')") ;
(第三个''是时间列)它似乎把时间戳放到了00:00:00
我已经浏览了一下,看起来正在通过查看其他Stack Overflow帖子做正确的事。
提前感谢您的帮助
答案 0 :(得分:2)
因为你把它作为空白''
如果您希望它是当前时间戳,那么查询应该是
INSERT INTO products(list of column_name except time column_name) values (values of list of columns present in column list)
您还可以使用NOW()
在数据库中插入日期和时间
答案 1 :(得分:2)
可能不使用''可能是使用问题
NOW()
答案 2 :(得分:1)
您正在时间戳列中插入空白(0)值。
你可以:
1 - 修改您的查询以排除时间戳列:
插入(foo,bar)值(“val1”,“val2”)
2 - 在值
内的第三个位置用CURRENT_TIMESTAMP替换“”答案 3 :(得分: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用于调试目的(您可以立即查看哪些列适用于哪些值,反之而不查看数据库模式)
答案 4 :(得分:1)
尝试将默认值设置为CURRENT_TIMESTAMP
,而不是将其放在属性中。
答案 5 :(得分:1)
使用NOW()mysql命令作为timestamp列的值
mysql_query("INSERT INTO `products` VALUES ('', '$title', NOW(), '$photo', '$price', '$details', '$description_short', '$description', '$dimensions', '$colour', '$scatid', '$type', '$brand', 'Y', '$size')") ;