2

チームと試合を一覧表示するシンプルなアプリを作成しています。チームと試合のデータベースは、次のスクリプトを使用して構築されました (私は PhpMyadmin を使用しています)。

CREATE TABLE IF NOT EXISTS `Team` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(120) NOT NULL,
  `screen_name` varchar(100) NOT NULL,
  `sport_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

CREATE TABLE IF NOT EXISTS `Match` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sport_id` int(11) NOT NULL,
  `team_one_id` int(11) NOT NULL,
  `team_two_id` int(11) NOT NULL,
  `venue` varchar(80) NOT NULL,
  `kick_off` datetime NOT NULL,
  PRIMARY KEY (`id`)
   ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

私が行った場合:

SELECT * FROM Team

スクリプトが実行され、空の結果が得られます。しかし、信じられないほど、私がそうするなら

SELECT * FROM Match

次のエラーが表示されます。

1064 - SQL 構文にエラーがあります。1行目の「Match」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

代わりに、私はしなければなりません:

SELECT * FROM `Match`

そして、それは機能します。データベースに他のテーブルがありますが、このような動作はこれだけです。理由はありますか?

4

3 に答える 3

2

matchはSQLの予約語です

詳細はこちら: https://drupal.org/node/141051

于 2013-08-01T20:40:49.543 に答える
2

Match は MySQL の関数であるため、引用符で囲む必要があります。

于 2013-08-01T20:39:54.157 に答える
1

Matchキーワードであるため、引用符で囲む必要があります。

キーワード一覧を見る

于 2013-08-01T20:42:00.627 に答える