安装脚本MySQL的语法错误,“你在你的SQL语法错误; [...]”
问题描述:
我有我的网站上安装脚本,当我运行它,它给了我thsi错误:安装脚本MySQL的语法错误,“你在你的SQL语法错误; [...]”
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的好方法。
谢谢!我听说过像mysqli这样一次运行多个声明......我可能会研究它!再次感谢! – blackjak231 2010-07-31 01:51:52