安装脚本MySQL语法错误“您的SQL语法中有错误; [...]”

时间:2010-07-31 01:31:47

标签: sql mysql mysql-error-1064

我的网站上有一个安装脚本,当我运行它时,它给了我错误:

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第2行'CREATE TABLE active_guestsip varchar(15)collat​​e latin1_general_'附近使用正确的语法

这是代码似乎错误的代码:

$sql = 'SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
        CREATE TABLE `active_guests` (
          `ip` varchar(15) collate latin1_general_ci NOT NULL,
          `timestamp` int(11) unsigned NOT NULL,
          PRIMARY KEY  (`ip`)
        );'; 

mysql_query($sql,$con) or die(mysql_error());

$sql = 'CREATE TABLE `active_users` (
           `username` varchar(30) collate latin1_general_ci NOT NULL,
           `timestamp` int(11) unsigned NOT NULL,
           PRIMARY KEY  (`username`)
        );';

mysql_query($sql,$con) or die(mysql_error());

$sql = 'CREATE TABLE `banned_users` (
           `username` varchar(30) collate latin1_general_ci NOT NULL,
           `timestamp` int(11) unsigned NOT NULL,
           PRIMARY KEY  (`username`)
        );';

之后它会继续下去,但基本上就是这样。有人可以搞清楚吗?提前谢谢!

1 个答案:

答案 0 :(得分:4)

每次调用mysql_query()时,您只能运行一个语句。

因此,您必须运行SET SQL_MODE ...,然后单独运行第一个CREATE TABLE ...


重新评论:我建议您坚持每次调用mysql_query()或其等效的mysqli或PDO时运行一个语句。这样做确实没有明显的缺点,这是防止某些形式的SQL injection的好方法。