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()は、指定された link_identifier に関連付けられているサーバー上の現在アクティブなデータベースに一意のクエリ (複数のクエリはサポートされていません) を送信します。

于 2013-05-25T19:24:45.460 に答える