用于插入日期,时间的PHP MySQL语法

时间:2009-05-03 08:06:20

标签: php mysql syntax

我试图使用php脚本插入日期,时间字段,但我收到语法错误。有人可以告诉我,我在做错的地方。 谢谢你的伙伴们

插入日历(事件,从,到,日) VALUES ( ' “$ _ REQUEST [ '事件'。”' ' “$ _ REQUEST [ 'FROM_TIME']”。', ' “$ _ REQUEST [ 'TO_TIME']”。', ' “$ _ REQUEST [ 'date_event']。”')

2 个答案:

答案 0 :(得分:6)

要插入mySQL datetime字段,字符串必须采用特定格式才能让mySQL了解它。问题是php对如何表示日期有自己的想法和想法。处理两者之间的日期时,你必须翻译。

如果在php中你正在处理一个时间对象,你可以这样做以获得mySQL会喜欢的字符串:

$mysqlDateString = date('Y-m-d H:i:s', $phpdate);

或者如果您正在处理字符串日期,则可以执行此操作:

$mysqlDateString = date('Y-m-d H:i:s', $strtotime("08/09/2009"));

如果从mySQL获取日期时间字符串,可以在PHP中处理它:

$phpTime = strtotime($mysqlDateString);

我自己也遇到过这个问题,所以希望这对你也有用。

答案 1 :(得分:2)

切勿在不清理数据的情况下将字符串数据插入sql语句,否则最终会进行sql注入(有意或无意注入),请参阅http://php.net/mysql_real_escape_string
如果您没有安装调试器,请让php打印sql语句,以便检查它。

格式化并缩进sql查询。它们更容易阅读和调试。

始终检查mysql_query()的返回值。如果为FALSE则查询失败,mysql_errno()mysql_error()可以告诉您有关错误原因的更多信息。

如果你想使用同样是reserved word for MySQL的标识符,你几乎总是必须把它放在反引号(`)或double_quotes(在ansi模式下)。

MySQL理解的日期/时间文字格式在http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

解释

使用_REQUEST进行INSERT操作可能会有问题......但我将其留给其他人回答; - )

<?php
$mysql = mysql_connect...

$query = " INSERT INTO `calendar` (`event`, `from`, `to`, `day`) VALUES ( '" . mysql_real_escape_string($_REQUEST['event'], $mysql) ."', '" . mysql_real_escape_string($_REQUEST['from_time'], $mysql) ."', '" . mysql_real_escape_string($_REQUEST['to_time'], $mysql) ."', '" . mysql_real_escape_string($_REQUEST['date_event'], $mysql]) ."' ) "; echo '<pre>$query=', htmlspecialchars($query), '</pre>'; $result = mysql_query($query, $mysql); if ( !$result ) { echo 'error: ', mysql_error($mysql); }

顺便说一下:改用prepared statements