使用PHP Mysql从表单插入日期

时间:2012-10-04 14:07:09

标签: php mysql

我似乎无法将我的表单中的日期插入到我的数据库中。请帮忙!

这是我的表格     

echo '

<h1>Enter New Report</h1>
<form action="submitreport.php" method="post"
enctype="multipart/form-data">

 Date: <input type="text" name="Date" value='.$myDate.' /><br />
 Report:<br><TEXTAREA NAME=Report ROWS=4 COLS=40></TEXTAREA><br />
 <input type="submit" name="submit" value="Submit" />
 </form>

 ';
 ?> 

以下是我提交给数据库的内容     

$insertdate = trim($_POST['Date']);

$insertdate = mysql_real_escape_string($insertdate);
    $insertdate = date('m/d/Y', $insertdate);

echo $insertdate;


mysql_query("INSERT INTO `Reports`(`Date`, `Report`) VALUES ('$insertdate','$_POST[Report]')") or die("load1 -" .  mysql_error());


mysql_close();

echo "Thank You!" . " -" . "<a href='index.php' style='text-decoration:none;color:#ff0099;'> Return Home</a>";
?>

4 个答案:

答案 0 :(得分:3)

我只是猜测,但数据库中的Date字段属于datedatetime。这些格式为YYYY-mm-dd。尝试将代码更改为:

$insertdate = date('Y-m-d', strtotime($_POST['Date']));

此外,在格式化之前,您不会将日期转换为时间戳。我也在这里添加了strtotime()数据。

答案 1 :(得分:2)

PHP date需要时间戳作为第二个参数。如果$insertdate不是,那么它就不会工作。您可以使用PHP的strtotime()函数从字符串中获取时间戳。

此外,必须根据mysql数据库中使用的类型格式化sql语句中的值,例如datedatetimetimestamp

答案 2 :(得分:0)

您可以使用NOW()MySQL函数将当前日期/时间插入数据库。您只需要使用Date,DateTime或Timestamp字段类型即可。

答案 3 :(得分:0)

我明白了      $ insertdate = trim($ _ POST ['Date']);

$insertdate = mysql_real_escape_string($insertdate);
$insertdate = strtotime($insertdate);

    $insertdate = date('Y-m-d', $insertdate);

strtotime修复了它,但我不得不重新安排日期格式为Y-m-d

感谢您的帮助