我的网站上有一个安装脚本,当我运行它时,它给了我错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第2行'CREATE TABLE
active_guests
(ip
varchar(15)collate 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`)
);';
之后它会继续下去,但基本上就是这样。有人可以搞清楚吗?提前谢谢!
答案 0 :(得分:4)
每次调用mysql_query()
时,您只能运行一个语句。
因此,您必须运行SET SQL_MODE ...
,然后单独运行第一个CREATE TABLE ...
重新评论:我建议您坚持每次调用mysql_query()
或其等效的mysqli或PDO时运行一个语句。这样做确实没有明显的缺点,这是防止某些形式的SQL injection的好方法。