2010-07-31 110 views
2

我有我的網站上安裝腳本,當我運行它,它給了我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`) 
     );'; 

它仍然之後甚至更多,但基本上它是這樣。任何人都可以清理東西?提前致謝!

回答

4

每次只能對mysql_query()運行一條語句。

所以,你必須運行SET SQL_MODE ...,然後分別運行第一CREATE TABLE ...


回覆您的留言:我建議你還是堅持使用運行每次調用一個聲明mysql_query()或等值的mysqli或PDO。這樣做確實沒有顯着的缺點,並且這是防止某種形式SQL injection的好方法。

+0

謝謝!我聽說過像mysqli這樣一次運行多個聲明......我可能會研究它!再次感謝! – blackjak231 2010-07-31 01:51:52