这里有几个潜在的问题。
首先,您还没有逃过eventname
针对SQL注入。我们希望myusername
已经安全。如果以前没有过滤,也可以使用mysql_real_escape_string()
$_SESSION['myusername']
。
$eventname = mysql_real_escape_string($_POST['eventname']);
// Then you need space before VALUES and are missing a closing quote on $_SESSION['myusername'], which should be in {}
$sql = mysql_query("INSERT INTO $tbl_name VALUES('','$eventname','{$_SESSION['myusername']}')");
最后,为了使语句来工作,它假定你有$tbl_name
正好三列。你应该明确使用的列。替换colname1, event_name, username
的正确列名称。
$sql = mysql_query("INSERT INTO $tbl_name (colname1, event_name, username) VALUES('','$eventname','{$_SESSION['myusername']}')");
SQL语法错误的确切位置将通过mysql_error()
显示给您一些基本的错误检查。
$sql = mysql_query(<your insert statement>);
if (!$sql) {
echo mysql_error();
}
这将是最好的,如果你也给了错误信息!它看起来像我站在哪里的语法错误。 pollirata和Micheal都深入地回答了这个问题。 – Malovich
您的SQL查询很容易受到SQL注入的影响。 – Lion
请停止使用古老的'mysql_ *'函数编写新代码。他们不再被维护,社区已经开始[弃用流程](http://news.php.net/php.internals/53799)。相反,您应该了解[准备好的陈述](http://en.wikipedia.org/wiki/Prepared_statement)并使用[PDO](http://php.net/pdo)或[MySQLi](http:// php.net/mysqli)。如果你关心学习,[这里是一个很好的PDO相关教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 –