2016-10-22 58 views
-1

出於某種原因格式似乎是正確的,它不會插入到我的數據庫。如果我將它設置爲Date而不是DateTime,並且只使用Y-m-d,那麼它對於Year-Month-Day非常適用。如何將PHP或PDO的日期時間插入MYSQL數據庫?

表列是日期時間:

$creation_date = date("Y-m-d H:i:s"); 

$sql = "INSERT INTO table SET creation_date='$creation_date'"; 

$stmt = $con->prepare($sql); 
$data = $stmt->execute(); 

它回聲一個例子出來:

INSERT INTO table SET creation_date='2016-10-22 20:42:11' 
+1

表中的creation_date列的類型是什麼?儘量讓它時間戳。 – Sawalhah

+1

A :::簡單:如果你打算使用'Y-m-d H:i:s',那麼你需要改變你的列爲DATETIME。 –

+0

我只是試過,但沒有插入...我原來是用於Ymd H:i:s的DateTime,但只是嘗試了不同格式的時間戳 – Sol

回答

2

你在其他一些點可能失敗,這是很難說沒有看到你的表模式。這裏有一個完整的例子,其中包括創建表和插入,嘗試重複每一個步驟,如果它仍然失敗,我建議:

  1. 嘗試從mysql命令行客戶端相同的查詢(MySQL的),看它是否是一個問題與PHP庫/連接到數據庫
  2. 發佈您的表架構,最理想的是我在下面展示的所有步驟。

localhost/test> CREATE TABLE datetest (id smallint(5) unsigned NOT NULL AUTO_INCREMENT, \ 
     ctime DATETIME NOT NULL, PRIMARY KEY(id)); 
Query OK, 0 rows affected (0.03 sec) 

localhost/test> SHOW CREATE TABLE datetest; 
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table | Create Table                                            | 
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| datetest | CREATE TABLE `datetest` (
    `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, 
    `ctime` datetime NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 | 
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

localhost/test> INSERT INTO datetest SET ctime='2016-10-22 20:42:11'; 
Query OK, 1 row affected (0.00 sec) 

localhost/test> SELECT * FROM datetest; 
+----+---------------------+ 
| id | ctime    | 
+----+---------------------+ 
| 1 | 2016-10-22 20:42:11 | 
+----+---------------------+ 
1 row in set (0.00 sec) 

另外一點需要注意的是,你應該從保留關鍵字date望而卻步。看起來這不是你的問題,而是需要注意的地方。

+0

我會在下次做。 – Sol

相關問題