mysql_Query date()错误

时间:2016-03-16 19:33:26

标签: mysql date

我正在使用脚本向页面添加反应。

$ id已定义并有效。 但是脚本仍然拒绝在数据库中输入数据。

这是我正在使用的代码:

if (mysql_query("INSERT INTO gastenboek (id, naam, bericht, datum, ip) VALUES ($id, '".trim(mysql_real_escape_string($_POST['naam']))."', '".trim(mysql_real_escape_string($_POST['bericht']))."', date(d M Y, H:i), '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."')")) {
    echo '<span style="color:green; font-weight: bold"Je reactie is succesvol toegevoegd!</span>';
} else {
    echo '<span style="color:green; font-weight: bold">Er is iets fout gegaan en je reactie is niet toegevoegd. Probeer het later opnieuw.</span>';

}

我总是收到'其他消息'。 我做错了吗?

我猜我的date()函数有问题吗? 我希望我的日期格式化如下: 2016年3月16日 - 20:33

1 个答案:

答案 0 :(得分:0)

date(d M Y, H:i)是一个字符串,因此需要引用它。当它是date(dMY)时,它只是一个不需要引用的整数。

您的格式date(d M Y, H:i)也不是mysql的日期时间格式。 mysql中的日期时间是yyyy-mm-dd hh:mm:ss

http://dev.mysql.com/doc/refman/5.7/en/datetime.html

  

DATE类型用于具有日期部分但没有时间部分的值。 MySQL在&#39; YYYY-MM-DD&#39;中检索并显示DATE值。格式。支持的范围是&#39; 1000-01-01&#39;到&#39; 9999-12-31&#39;。

     

DATETIME类型用于包含日期和时间部分的值。 MySQL在&#39; YYYY-MM-DD HH:MM:SS&#39;中检索并显示DATETIME值。格式。支持的范围是&#39; 1000-01-01 00:00:00&#39;到&#39; 9999-12-31 23:59:59&#39;。

所以试试:

mysql_query("INSERT INTO gastenboek (id, naam, bericht, datum, ip) VALUES ($id, '".trim(mysql_real_escape_string($_POST['naam']))."', '".trim(mysql_real_escape_string($_POST['bericht']))."', '" . date(d M Y, H:i) . "', '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."')")

附加说明:

  • 您应该使用,PDO或mysqli更新连接到数据库的驱动程序。
  • 您应该使用参数化查询,然后引用不会影响您的字符串。
  • 您应该检查错误日志并使用与您用来检查错误的驱动程序相关的功能。例如,使用您当前的驱动程序http://php.net/manual/en/function.mysql-error.php