2012-09-04 59 views
0

經過一段時間的研究後,我努力使用隱藏的表單域和PHP MS SQL Query來提交數據時添加上傳到數據庫的日期。類似於MySQL NOW()函數。我已經嘗試過並且不起作用。我也嘗試了PHP日期函數。將DateUploaded Time添加到PHP的MS SQL數據庫中

<input type="hidden" name="DateUploaded" value="<?php date("d","m","y") ?>"> 

用我上傳看起來像這樣:

<?php 
$Title=$_POST['Title']; 
$Synopsis=$_POST['Synopsis']; 
    $Article=$_POST['Article']; 
    $DateUploaded=$_POST['DateUploaded']; 
    $Deleted=$_POST['Deleted']; 
    mssql_connect("*************", "*********", "*********") or die; 
    mssql_select_db("DBName") or die; 
    mssql_query("INSERT INTO DBTable (Title, Synopsis, Article, DateUploaded, Deleted) VALUES ('$Title','$Synopsis','$Article','$DateUploaded','$Deleted')"); 
    Print "Your information has been successfully added to the database."; 
    ?> 

它只是一個簡單的測試博客DB,但是當我嘗試這個技術我得到這個錯誤:

Warning: mssql_query() [function.mssql-query]: message: Conversion failed when converting character string to smalldatetime data type. (severity 16) in (File Path) on line 9 

我明白這一點是因爲我試圖把一個字符串放入設置爲smalldatetime的DB列中。我只是想知道是否有辦法解決這個問題,而不需要改變數據庫中的數據類型?

任何幫助,將不勝感激。

回答

2

而不是使用隱藏字段的只是使用PHP的日期(),如:

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

確保數據庫歸檔有日期類型。

+0

真棒謝謝你 – Bohdi

+0

你的歡迎.. !! –

1

您可以在查詢數據庫之前生成時間戳值並寫入值,而不需要在窗體中隱藏任何字段。你將節省安全漏洞,這將是更好的風格。

我的例子:

$dateUploaded = time(); 

time()功能的更多細節。我建議你去尋找比隱藏領域更好的解決方案。

+0

我正在使用MSSQL數據庫而不是MySQL。這會繼續嗎? – Bohdi

+0

是的,因爲你用php生成了值然後把它寫到Db。 –

+0

我仍然無法將字符串轉換爲smalldatetime錯誤。 – Bohdi