2013-10-16 50 views
-1

我想將PHP中的日期時間保存到我的數據庫中,但我不能。數據庫中的日期時間值始終設置爲0000-00-00 00:00:00。我究竟做錯了什麼?無法在數據庫中保存php日期時間

我的代碼:

$today = new DateTime(); 
$dt = $today->format('Y-m-d H:i:s'); 
$sql = "UPDATE wp_posts SET post_date = $dt, post_date_gmt = $dt WHERE ID = $id"; 
+0

Y/M/d H:我:沒什麼? –

+0

@DonovanCharpin Nope – Loko

+0

請使用搜索。 [任何這些](http://stackoverflow.com/search?q=%5Bphp%5D+%5Bmysql%5D+0000-00-00+00%3A00%3A00)會有幫助 –

回答

5

儘量把引號:

$today = new DateTime(); 
$dt = $today->format('Y-m-d H:i:s'); 
$sql = "UPDATE wp_posts SET post_date = '$dt', post_date_gmt = '$dt' WHERE ID = $id"; 
+0

謝謝,它的工作! – Jigberto

+0

沒有問題,記住你的日期沒有引號看起來像奇怪的方程'2013-10-16' – Elen

+0

是你的個人資料圖片你的真實身體?你看起來很好,很聰明:)我怎麼可以跟你說話 – Jigberto

4

簡單,日期時間是字符串,而不是整數。

$today = new DateTime(); 
$dt = $today->format('Y-m-d H:i:s'); 
$sql = "UPDATE wp_posts SET post_date = '$dt', post_date_gmt = $dt WHERE ID = $id"; 

會工作得更好:)

0

你可以使用,

$dt = date("Y-m-d H:i:S"); 
$sql = "UPDATE wp_posts SET post_date = '$dt', post_date_gmt = '$dt' WHERE ID = $id"; 
+0

這不會幫助真正的問題在這裏。您可以將其作爲評論發佈。 (儘管在這裏實際使用面向對象的方法可能更受歡迎) –

+0

這並沒有解決原始問題。報價在這種情況下並沒有什麼不同。 –

0

而不是使用日期時間從PHP,你現在應該使用mysql inbuit()函數,沒有必要寫額外的代碼行在PHP中。

$sql = "UPDATE wp_posts SET post_date = now(), post_date_gmt = now() WHERE ID = $id"; 

n您可以阿洛斯設置NOW()在你的表字段所以你不需要設置的查詢,當記錄將插入,更新它會自動設置爲當前日期時間。

CREATE TABLE tablename 
    (
     fiedlId int NOT NULL, 
     fieldName varchar(50) NOT NULL, 
     fieldDate datetime NOT NULL DEFAULT NOW(), 
     PRIMARY KEY (fiedlId) 
    ) 

乾杯!

0

你爲什麼不使用mysql 的時間戳功能,用於新表

$sql = CREATE TABLE newtb (current_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP); 
or 
$sql = CREATE TABLE newtb (current_time DATETIME DEFAULT NOW()); 

修改表

$sql = CREATE TABLE newtb MODIFY current_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP; 
or 
$sql = CREATE TABLE newtb MODIFY current_time DATETIME DEFAULT NOE(); 
相關問題