0

在研究了一段时间后,我正在努力使用隐藏的表单字段和 PHP MS SQL 查询在提交数据时添加上传到数据库的日期。类似于 MySQL NOW() 函数的东西。我已经尝试过但不起作用。然后我还尝试了 PHP 日期函数。

<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."; 
   ?>

它只是一个简单的测试博客数据库,但是当我尝试这种技术时,我得到了这个错误:

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 列中。我只是想知道是否有一种方法可以让我不必更改数据库中的数据类型?

任何帮助,将不胜感激。

4

2 回答 2

2

而不是使用隐藏字段,只需使用 php 的 date() ,例如:

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

确保您的数据库文件具有日期类型。

于 2012-09-04T09:07:50.293 回答
1

您可以在查询数据库之前生成时间戳值并写入该值,而表单中没有任何隐藏字段。您将节省安全漏洞,这将是更好的风格。

我的例子:

$dateUploaded = time();

有关详细信息,请参阅time()函数。我建议您调查比隐藏字段更好的解决方案。

于 2012-09-04T08:36:43.563 回答