将日期插入mysql数据库

时间:2013-02-11 22:04:00

标签: php mysql

我有一个简单的表单,其中隐藏字段的值为:

<?php echo date('Y-m-d'); ?>

当我通过我的php处理脚本提交表单时,表单上的所有内容都会在日期之外进入数据库。

这是我的sql:

$sql = "INSERT INTO wp_reminders (dateofentry, ipaddress, type) VALUES ('$_POST[dateofentry]','$_POST[ipaddress]' ,'$_POST[type]')";

当我在处理页面上回显日期时,显示正常。

我已使用以下内容在我的数据库中设置了该列:

 dateofentry date NOT NULL

如果上述内容有任何问题,是否有任何想法?

2 个答案:

答案 0 :(得分:0)

插入MySQL的任何日期必须符合one of the formats that MySQL can parse或必须转换。 ISO 8601是首选格式,通常为YYYY-MM-DD HH:MM:SS

如果你使用过PDO:

$sql = "INSERT INTO wp_reminders (dateofentry, ipaddress, type) VALUES (:dateofentry, :ipaddress, :type)";
$statement = $pdo->prepare($sql);
$statement->bindParam(":dateofentry", strtotime(date("Y-m-d H:i:s")), PDO::PARAM_STR);
$statement->bindParam(":ipaddress", $_POST['ipaddress'], PDO::PARAM_STR);
$statement->bindParam(":type", $_POST['type']), PDO::PARAM_STR);
$statement->execute();

除非您希望表单花费很长时间来处理,否则在创建查询时提供日期可能是有意义的。如果没有,您可以随时将strtotime来电添加到您的表单中。

答案 1 :(得分:-1)

您必须使用此语法来创建SQL查询:

$sql = "INSERT INTO wp_reminders (dateofentry, ipaddress, type) VALUES ('".addslashes($_POST['dateofentry'])."','".addslashes($_POST['ipaddress'])."' ,'".addslashes($_POST['type'])."')";

在您的示例中,您没有使用双引号包装索引键...

你真的不应该把一个php变量放到一个字符串中,连接它会更好。