我尝试了很多东西,却无法理解为什么这不起作用...... 基本上,我正在放弃并创建表格。以下查询在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)
我得到的错误是:
查询无效:您的SQL语法出错;检查与您的MySQL服务器版本对应的手册,以便在'DROP TABLE IF EXISTS
calendarCountries
附近使用正确的语法; CREATE TABLEcalendarCountries
('第3行
请帮助我,我做错了什么?
答案 0 :(得分:0)
mysqli_query函数只允许使用一个查询。如果您需要运行一些查询,则需要对每个查询使用一个mysqli_query
或使用mysqli_multi_query函数。例如:
$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);