2012-12-14 136 views
0

我想將日期時間插入到mysql表中的列中。PHP日期時間插入到mysql

<?php 

//Some code 

date_default_timezone_set('Europe/London'); 

//Other variables defined also 

$date_time = new DateTime(); 


$queryreg = mysql_query (" 

    INSERT INTO users VALUES ('','$username','$password','$email','$website','$image','$date_time') 

    "); 



?> 

但是瀏覽器指出: 「開捕致命錯誤:類的DateTime的對象無法轉換爲字符串C:\ XAMPP \ htdocs中\設計\線181上register.php」。任何想法爲什麼這樣做?提前謝謝了。

+0

可能重複[在MySQL查詢中使用php DateTime對象](http://stackoverflow.com/questions/10489386/using-php-datetime-object-in-mysql-query) –

回答

1

這是因爲您正試圖通過在SQL查詢中用''將字符串包圍在字符串中來約束$ date_time。無論是通過做除去兩邊的引號或轉換爲字符串:

$date_time->format('Y-m-d H:i:s'); 
5
$date = $date_time->format('Y-m-d H:i:s'); 

INSERT INTO .... VALUES (..., '$date'); 
1

你必須使用$datetime->format('Y-m-d H:i:s')的插入,就像這樣:

INSERT INTO users VALUES ('', '$username', '$password', '$email', '$website', '$image', '{$date_time->format('Y-m-d H:i:s')}') 

我也建議不要使用mysql_*功能,而是學習使用PDO與準備好的語句或至少mysqli_*函數。

還清理您的輸入以防止SQL注入。

0

最好的解決方案是在表中使用默認值CURRENT_TIMESTAMP的時間戳字段。

但是,如果你想手動控制這一塊,那麼你需要的DateTime對象轉換爲字符串,像這樣:

<?php 
//Some code 
date_default_timezone_set('Europe/London'); 

//Other variables defined also 
$date_time = new DateTime(); 

$queryreg = mysql_query("INSERT INTO users VALUES 
     ('','$username','$password','$email','$website','$image', 
     '{$date_time->format('Y-m-d H:i:s')}')"); 
?> 
1

提供日期字符串格式,如:

DATE_FORMAT(例如,變量「字符串格式」)

date_format($ date_time,「%m /%d /%y」)。