MySQLでシングルクォートの代わりにアポストロフィーを使って「ERROR 1064」[FuelPHP入門]

MySQLにテーブルを作成しようとしてクエリを実行したら
「#1064 – 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 ‘(クエリ)’ at line 1」
というエラーが発生。

1064エラーは、SQLの文法ミスってこと。。
先に原因を挙げとくと、囲み文字に「’」アポストロフィーを使っていたためである。

環境は Ubuntu12.10、MySQL5.5、phpmyadmin3.3。

1. アポストロフィーとシングルクォートの違い

アポストロフィーとシングルクォートは厳密には違うようだ。

アポストロフィーは、単体で使用する省略記号のこと(例、can’t)。

シングルクォートは、2つ一組で使用する引用符のことで、シングルクオーテーションを略したもの(例、私はwebサービスを作成`できる`)。

アポストロフィーは「Shit + 7」で、シングルクォートは「Shift + @」で入力できる。

2. MySQLの囲み文字にはシングルクォート

MySQLにて、テーブルを作成するクエリで比較してみる。

1. テーブルとカラムを何も囲っていない場合のクエリ。実行される。

create table test1 ( id int(11), title varchar(255));

2. テーブルとカラムを「アポストロフィー」で囲ったクエリ。エラーとなる。

create table ‘test2’ ( ‘id’ int(11), ‘title’ varchar(255));

3. テーブルとカラムを「シングルクォート」で囲ったクエリ。実行される。

create table `test3` ( `id` int(11), `title` varchar(255));

結論としては、SQL文にはアポストロフィーは使用せず、全てシングルクォートでやる(マイグレーションどうするんだろ・・・)。
これ以外の方法あったら教えてください。

【参考】

シングルコーテーションとアポストロフィーは同じです | その他(プログラミング)のQ&A【OKWave】

phpMyAdminで#1064エラーになる場合の対処 – 理系のためのTIPS集 @naokichick

コメント

タイトルとURLをコピーしました