我有一个简单的表单,其中隐藏字段的值为:
<?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
如果上述内容有任何问题,是否有任何想法?
答案 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变量放到一个字符串中,连接它会更好。