MENU

あまりに焦りすぎてMySQLのsyntax errorが見抜けなかった話。コードは落ち着いて確認しましょう

さて。

今回はデータベースの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文)見るようにします」、はい。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次