さて。
今回はデータベースのMySQLのお話です。初心者あるあるの文法エラーネタですが、何のひねりもありません。まあ強いて言うなら、
- 「コード(SQL文)はよく見ましょう」とか
- 「どうしても分からない時は時間を置いてから確認しましょう」
という教訓めいたものです。このときなぜか「早くなんとかせなアカン!」と思って焦っていて、自力でエラーを見つけることはできませんでした。
これぐらい分からなければ、Webアプリも何もあったもんじゃないんですが、自分自身への戒めも込めて書き残しておきます。
問題の内容
MySQLのデータベースにテーブルを作ってinsert文でデータを追加しようとするとシンタックスエラーが出ます。SQL文が間違っているのかと思いGoogle検索や本で調べたりしましたが、なぜ文法エラーが発生するのか分かりません。
[php]
// membersテーブル
create table members (
id int not null auto_increment primary key,
created datetime not null,
modified datetime not null,
username varchar(255),
password varchar(40)
);
desc members;
[/php]
+———-+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+———-+————–+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| created | datetime | NO | | NULL | |
| modified | datetime | NO | | NULL | |
| username | varchar(255) | YES | | NULL | |
| password | varchar(40) | YES | | NULL | |
+———-+————–+——+—–+———+—————-+
[php]
// データの追加
insert into members (created, modified, username, password) values
(now(), now(), ‘hoge1’, ‘foo1’),
(now(), now(), ‘hoge2’, ‘foo’)
);
[/php]
問題の解決
「問題の解決」というか、何というか、ここまで読んでくださったみなさん、ありがとうございます。すでに一瞬でお分かりですよね。
// データの追加において、3行目または4行目の’)’がエラーの原因です。これを除けばいいだけです。これしきのことで質問掲示板に投稿をしてしまった。
落ち着いてみれば、自分自身でも「アホやな~」と思うんですが、人間焦ると周りが見えなくなっちゃいますね~。見えなさすぎと言われるかもしれませんが、そのときはやはり「時間を置いてからコード(SQL文)見るようにします」、はい。