「’」と「`」は違う

In: mysql

25 9月 2008

いつもphpMyAdminに頼りっぱなしだと、いざというときに困ってしまうので、単純なデータベース操作のときくらいコマンドラインを使ってみようと思ったものの、何度やってもエラーになってしまう。

mysql> create database 'test_3' default character set utf8 collate utf8_general_ci;
ERROR 1064 (42000): 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 ''test_3' default character set utf8 collate utf8_general_ci' at line 1

なんでだろう…。とりあえず教科書通りに大文字にしてみようか。

mysql> CREATE DATABASE 'test_3' DEFAULT CHARACTER SET UTF8 COLLATE UTF8_general_ci;
ERROR 1064 (42000): 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 ''test_3' DEFAULT CHARACTER SET UTF8 COLLATE UTF8_general_ci' at line 1

うおー、なんでだ。エラーメッセージが”test_3…から始まっていると言うことは、ひとまず「create database」までは合っているわけだ。その後に何が…。

あきらめてphpMyAdminから実行して、「実行したSQL」の部分をじっと眺めて漸く気付いた。

正しい方

CREATE DATABASE `test_3` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

間違っている方

CREATE DATABASE 'test_3' DEFAULT CHARACTER SET UTF8 COLLATE UTF8_general_ci;

データベース名を囲むチョンチョンが違う! これ、フォント指定の違いで’(Shift+7)が違う風に表示されているのかと思いきや、違う文字だった。
これ、`(Shift+@)だったんですねぇ…。

(今まで何でこの問題に突き当たらなかったかというと、コマンドラインで打つときはチョンを付けていなかったからのようです。付けなかったらそれはそれでOK。)

Related posts:

  1. PHP+MySQL で文字化け対策 MySQLにクエリを出して呼び出した結果が「??????」で文字化けしてしまう! こんな感じで、普通にMySQLのSELECT文で情報を取得しようとしていた訳なんですが、日本語部分が全部「????」に文字化けしてしまう。 ...続きを読む...
  2. apacheの prefork.cとworker.cの違い /etc/httpd/conf/httpd.conf を見ると、KeepAliveとかMaxClientとかの設定をする部分が、2つあることに気付きます。 # prefork MPM   StartServer ...続きを読む...

Related posts brought to you by Yet Another Related Posts Plugin.

コメント

Comment Form

About this blog

ここは、SE見習いである私ことdaceloが、日夜習得していくシステム関連の備忘録、phpやWordPressTipsのネタ、あるいはSEOやWebマーケティング関連の雑感を投稿するブログです。 平日は大体毎日投稿しています。土日は休業日です。

カテゴリー