2013-04-29 90 views
1

所以我在MySQL列雖然PHPMyAdmin中,看起來像這樣MySQL的TIMESTAMP通過PHP插入時沒有更新

PHPMyAdmin shot

當我插入通過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

我看了一下,看起來正在通過其他一些堆棧溢出帖子來查看。

預先感謝您的幫助

+0

更好的使用價值'DATETIME' – 2013-04-29 10:18:38

回答

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之間),跳過列列表和值列表中的timestamp列。

我個人更喜歡選擇2進行調試(你可以即時看到哪些列其值,反之亦然不看DB模式)

2

因爲你的推杆它作爲空白''

如果你希望它是當前時間戳那麼查詢應該是

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

你也可以使用NOW()在數據庫中插入日期和時間

+2

同意。明確列出列名是[良好做法](http://weblogs.sqlteam.com/jamesw/archive/2011/10/03/a-list-of-sql-best-practices.aspx) - 其中一個問題它可以幫助您避免使用當前時間戳,而不會讓RDBMS自動插入當前時間戳。 – 2013-04-29 10:23:03

2

可能不會使用''可能會出現問題使用

NOW() 
1

您正在timestamp列內插入空白(0)值。

您可以:

1 - 修改查詢來排除時間戳列:

INSERT INTO(FOO,吧)值( 「VAL1」, 「值2」)

2 - 取代「」 與在第三位置CURRENT_TIMESTAMP內值

+0

儘管「pippo」和「pluto」是意大利教學編程時使用的通用通用變量,但在編寫英文時應使用「foo」,「bar」和「baz」;) – 2013-04-29 11:40:06

+1

LOL,true ;-) answer updated – LombaX 2013-04-29 12:32:47

1

嘗試將默認值設置爲CURRENT_TIMESTAMP,而不是把在屬性。

1

使用NOW()mysql命令爲時間戳列

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