Php 通过SQL pro可以正常工作的MySQL查询在mysqli_查询中不起作用

Php 通过SQL pro可以正常工作的MySQL查询在mysqli_查询中不起作用,php,mysql,sql,database,Php,Mysql,Sql,Database,我尝试了很多东西,但不明白为什么这不起作用。。。 基本上,我正在删除和创建表。下面的查询在SQL PRO或mysqladmin中非常有效 SET foreign_key_checks = 0; DROP TABLE IF EXISTS `calendarCountries`; CREATE TABLE `calendarCountries` ( `id` int(5) NOT NULL AUTO_INCREMENT, `country` varchar(50) NOT NULL,

我尝试了很多东西,但不明白为什么这不起作用。。。 基本上,我正在删除和创建表。下面的查询在SQL PRO或mysqladmin中非常有效

SET foreign_key_checks = 0;

DROP TABLE IF EXISTS `calendarCountries`;

CREATE TABLE `calendarCountries` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `country` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

insert into calendarCountries (id,country) values (1,'US');

DROP TABLE IF EXISTS `calendarWorldHolidays`;

CREATE TABLE `calendarWorldHolidays` (
  `holidayName` varchar(150) NOT NULL,
  `holidayDate` date NOT NULL,
  `countryCode` int(5) DEFAULT NULL,
  KEY `countryCode` (`countryCode`),
  CONSTRAINT `calendarWorldHolidays_ibfk_1` FOREIGN KEY (`countryCode`) REFERENCES `calendarCountries` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

SET foreign_key_checks = 1;
但每当我试图通过php执行它时,它都不起作用,这给了我一个语法错误

我只是像这样将sql语句复制到php

$createTablesQuery = "  <I copy the statements above here>   "
mysqli_query($link, $createTablesQuery)
$createTablesQuery=“”
mysqli_查询($link,$createTablesQuery)
我得到的错误是:

无效查询:SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,了解使用near'DROP TABLE(如果存在)的正确语法
calendarCountries
;创建表格
日历国家
(“在第3行

请帮助我,我做错了什么?

该函数只允许使用一个查询。如果需要运行几个查询,则需要对每个查询使用一个
mysqli\u查询,或者使用该函数。例如:

$query1 = "CREATE TABLE `calendarCountries` ( `id` int(5) NOT NULL AUTO_INCREMENT, `country` varchar(50) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;";
$query2 = "insert into calendarCountries (id,country) values (1,'US');";

//Variant 1
mysqli_query($link, $query1);
mysqli_query($link, $query2);

//Variant2
mysqli_multi_query($link, $query1.$query2);

您不能执行那样的多个查询。请改用
mysqli\u multi\u query()