什么MySQL列类型保存PHP的time()函数结果的值?

时间:2016-02-18 05:10:00

标签: php mysql timestamp

我有一个PHP PDO数据库类,我正在尝试修改和使用它。

其中一项功能是自动更新created_+atupdated_at数据库列。

这与Laravel类似,因为Laravel中的模型可以选择这样做。幸运的是,Laravel可以为您创建数据库列。

在我的情况下,我必须创建这些列,PHP类将处理更新它们。

该类使用PHP time()函数来更新这些列。

经过一些重新研究,看看Laravel用于其时间戳created_atupdated_at列的列类型,我发现它使用了MySQL timestamp列类型。

所以我继续使用一个数据库表来测试我的PDO类,该数据库具有created_at类型的timestamp列,并在下面显示此查询并收到错误消息:

INSERT INTO `timeclock`.`password_reminders` 
    (`email`, `token`, `created_at`) 
VALUES 
    ('jaso33n.davis.fl@gmail.com', '5432', '1455771891'),
    ('jas6756on.davis.fl@gmail.com', '12345', '1455771898');

我在phpMyAdmin中收到此消息:

2 rows inserted.
Warning: #1265 Data truncated for column 'created_at' at row 1
Warning: #1265 Data truncated for column 'created_at' at row 2

PHP类使用time()生成如下值:value like this: 1455771305``

那么我应该为这些字段使用什么类型的DB列?

2 个答案:

答案 0 :(得分:1)

将整数字符串'1455771891'替换为from_unixtime('1455771891')。

mysql> select from_unixtime('1455771305');
+-----------------------------+
| from_unixtime('1455771305') |
+-----------------------------+
| 2016-02-18 12:55:05.000000  |
+-----------------------------+
1 row in set (0.00 sec)

答案 1 :(得分:0)

在mysql列中使用时间函数插入时间

mysql_select_db('ecommerce',$ con);

$ time = time('h:i:s A');

mysql_query('INSERT INTO tbl_users(id,firstName,lastName,time)VALUES(35,“asd”,“pqr”,“'。$ time。'”)');