2

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

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“CREATE TABLE active_guests( ipvarchar(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`)
        );';

在那之后它继续下去,但基本上就是这样。任何人都可以澄清事情吗?提前致谢!

4

1 回答 1

4

每次调用只能运行一个语句mysql_query()

所以你必须运行SET SQL_MODE ...然后单独运行第一个CREATE TABLE ...


回复您的评论:我建议您坚持每次调用运行一条语句,mysql_query()或者在 mysqli 或 PDO 中运行一条语句。这样做确实没有明显的缺点,而且它是防止某些形式的SQL 注入的好方法。

于 2010-07-31T01:45:06.590 回答