我有一个PHP PDO数据库类,我正在尝试修改和使用它。
其中一项功能是自动更新created_+at
和updated_at
数据库列。
这与Laravel类似,因为Laravel中的模型可以选择这样做。幸运的是,Laravel可以为您创建数据库列。
在我的情况下,我必须创建这些列,PHP类将处理更新它们。
该类使用PHP time()
函数来更新这些列。
经过一些重新研究,看看Laravel用于其时间戳created_at
和updated_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列?
答案 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。'”)');