我的网站上有一个安装脚本,当我运行它时,它给了我这个错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE
active_guests
(ip
varchar(15) collate latin1_general_' at line 2
这是似乎有错误的代码:
$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`)
);';
之后还会继续,但基本上就是这样。任何人都可以澄清事情吗?提前致谢!
最佳答案
每次调用 mysql_query()
时只能运行一条语句。
因此,您必须运行SET SQL_MODE ...
,然后单独运行第一个CREATE TABLE ...
回复您的评论:我建议您坚持每次调用 mysql_query()
或 mysqli 或 PDO 中的等效项时运行一个语句。这样做确实没有明显的缺点,而且这是防止某些形式的 SQL injection 的好方法。 .
关于sql - 安装脚本MySQL语法错误 "You have an error in your SQL syntax; [...] ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3376408/