0

我在这里有一个非常奇怪的问题。我正在通过 phpmyadmin 导出查询,然后当我使用它运行它时,mysql_query我收到一条错误消息,指出查询的语法不正确。

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 `wp_cfs_events` ( `event_id` int(11) NOT NULL AUTO_' at line 14

相同的查询使用 phpmyadmin 运行得非常好。可能是什么问题呢?

这是SQL查询

CREATE TABLE IF NOT EXISTS `wp_cfs_certificates` (
  `certificate_id` varchar(8) DEFAULT NULL,
  `parent_name` varchar(45) NOT NULL,
  `address` varchar(45) NOT NULL,
  `phone_number` varchar(15) NOT NULL,
  `emergency_number` varchar(15) NOT NULL,
  `email` varchar(45) NOT NULL,
  `certificate_price` enum('40','50') NOT NULL,
  `certificate_order_time` datetime DEFAULT NULL,
  `is_used` tinyint(1) DEFAULT '0',
  UNIQUE KEY `certificate_id_UNIQUE` (`certificate_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `wp_cfs_events` (
  `event_id` int(11) NOT NULL AUTO_INCREMENT,
  `event_name` varchar(60) DEFAULT NULL,
  `event_desc` varchar(2048) DEFAULT NULL,
  `event_date` date DEFAULT NULL,
  PRIMARY KEY (`event_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

INSERT INTO `wp_cfs_events` (`event_id`, `event_name`, `event_desc`, `event_date`) VALUES
(1, 'Culture Night', 'all about culture', '2013-05-16'),
(2, 'Sports Night', 'all about sports', '2013-05-31'),
(3, 'Random Night', 'randomness overloaded', '2013-06-15'),
(4, 'Winter Fest', 'the awesome winter fest', '2013-11-20'),
(5, 'Archived Event', 'this event has been occured in past', '2013-04-02');

CREATE TABLE IF NOT EXISTS `wp_cfs_parents` (
  `parent_id` int(11) NOT NULL,
  `parent_name` varchar(60) DEFAULT NULL,
  PRIMARY KEY (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `wp_cfs_registrations` (
  `registration_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `certificate_id` varchar(8) NOT NULL,
  `event_id` varchar(45) DEFAULT NULL,
  `parent_name` varchar(45) NOT NULL,
  `address` varchar(45) NOT NULL,
  `phone_number` varchar(15) NOT NULL,
  `emergency_number` varchar(15) NOT NULL,
  `email` varchar(45) NOT NULL,
  `child_name` varchar(45) DEFAULT NULL,
  `child_age` int(11) DEFAULT NULL,
  PRIMARY KEY (`registration_id`),
  UNIQUE KEY `certificate_id_UNIQUE` (`certificate_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

ALTER TABLE `wp_cfs_registrations`
  ADD CONSTRAINT `certificate_id` FOREIGN KEY (`certificate_id`) REFERENCES `wp_cfs_certificates` (`certificate_id`) ON DELETE NO ACTION ON UPDATE CASCADE;
4

1 回答 1

3

这是因为mysql_query()不支持多个查询

它在官方PHP文档中提到

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

于 2013-05-25T19:24:45.460 回答