我试图使用php脚本插入日期,时间字段,但我收到语法错误。有人可以告诉我,我在做错的地方。 谢谢你的伙伴们
插入日历(事件,从,到,日) VALUES ( ' “$ _ REQUEST [ '事件'。”' ' “$ _ REQUEST [ 'FROM_TIME']”。', ' “$ _ REQUEST [ 'TO_TIME']”。', ' “$ _ REQUEST [ 'date_event']。”')
答案 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操作可能会有问题......但我将其留给其他人回答; - )
顺便说一下:改用prepared statements。<?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); }