Php 似乎是MySQL中的语法错误

Php 似乎是MySQL中的语法错误,php,mysql,Php,Mysql,MySQL正在推迟以下错误: 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 IF NOT EXISTS `badips` ( `id` int(10) NOT NULL auto_increment, ' at line 2 当我运行以下PHP时:

MySQL正在推迟以下错误:

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 IF NOT EXISTS `badips` ( `id` int(10) NOT NULL auto_increment, ' at line 2
当我运行以下PHP时:

if (file_exists("../login/includes/config.php")) {

    $db_schema = array();

$db_schema[] = "DROP TABLE IF EXISTS `badips`;
CREATE TABLE IF NOT EXISTS `badips` (
  `id` int(10) NOT NULL auto_increment,
  `host` varchar(50) NOT NULL,
  `ip` varchar(20) NOT NULL,
  `enteredhost` varchar(50) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;";

require_once('../login/includes/config.php');
require_once('open-db.php');

      echo "<h3>Creating tables...</h3>";
      foreach($db_schema as $sql) {
       mysql_query($sql) or die(mysql_error());
      }
      echo "<h3>Done!</h3>";
  }
if(文件_存在(“../login/includes/config.php”)){
$db_schema=array();
$db_schema[]=“如果存在删除表`badips`”;
如果不存在“badips”,则创建表(
`id`int(10)非空自动增量,
`主机'varchar(50)不为空,
`ip`varchar(20)不为空,
`enteredhost`varchar(50)不为空,
主键(`id`)
)ENGINE=MyISAM默认字符集=latin1自动增量=26;“;
需要_once('../login/includes/config.php');
一次需要_('open-db.php');
回显“创建表…”;
foreach($db_模式为$sql){
mysql_query($sql)或die(mysql_error());
}
回声“完成!”;
}
但是当我从PHPMyAdmin运行相同的SQL时,它运行起来没有任何缺陷。我想不出是什么问题。有人知道吗?

mysql\u query()不支持多个查询:

mysql\u query()
向服务器上与指定链接标识符关联的当前活动数据库发送唯一查询(不支持多个查询)

mysql\u query()
不支持多个查询:

mysql\u query()
向服务器上与指定链接标识符关联的当前活动数据库发送唯一查询(不支持多个查询)

替换此项:

$db_schema[] = "DROP TABLE IF EXISTS `badips`;
CREATE TABLE IF NOT EXISTS `badips` (
  `id` int(10) NOT NULL auto_increment,
  `host` varchar(50) NOT NULL,
  `ip` varchar(20) NOT NULL,
  `enteredhost` varchar(50) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;";

替换此项:

$db_schema[] = "DROP TABLE IF EXISTS `badips`;
CREATE TABLE IF NOT EXISTS `badips` (
  `id` int(10) NOT NULL auto_increment,
  `host` varchar(50) NOT NULL,
  `ip` varchar(20) NOT NULL,
  `enteredhost` varchar(50) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;";

mysql_query()不支持多个查询,替换为

$sql="DROP TABLE IF EXISTS `badips`;";

mysql_query($sql) or die(mysql_error());

$sql="CREATE TABLE IF NOT EXISTS `badips` (`id` int(10) NOT NULL auto_increment, `host` varchar(50) NOT NULL, `ip` varchar(20) NOT NULL, `enteredhost` varchar(50) NOT NULL, PRIMARY KEY  (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;";

mysql_query($sql) or die(mysql_error());
mysql_query()不支持多个查询,替换为

$sql="DROP TABLE IF EXISTS `badips`;";

mysql_query($sql) or die(mysql_error());

$sql="CREATE TABLE IF NOT EXISTS `badips` (`id` int(10) NOT NULL auto_increment, `host` varchar(50) NOT NULL, `ip` varchar(20) NOT NULL, `enteredhost` varchar(50) NOT NULL, PRIMARY KEY  (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;";

mysql_query($sql) or die(mysql_error());

我今天学到了一些新东西。将它拆分为多个mysql_query(),它就成功了。谢谢,丹尼尔。我今天学到了一些新东西。将它拆分为多个mysql_query(),它就成功了。谢谢,丹尼尔。我知道你有答案,但我只是想补充一点,创建表旁边的“如果不存在”是不需要的,因为你在创建表之前就删除了表。@Ash Burlaczenko,谢谢,你是对的,但我是偏执狂,喜欢荒谬地过度杀戮。我知道你有你的答案,但我只是想补充一点,创建表旁边的“如果不存在”是不需要的,因为你在创建表之前就放弃了表。@Ash Burlaczenko,谢谢,你是对的,但我是偏执狂,喜欢荒谬地过度杀戮它