LoginSignup
1
0

More than 1 year has passed since last update.

初心者 MySQL8に挑戦する 5

Last updated at Posted at 2022-07-17

phpMyAdmin ?

 たった一つのデータが入っているテーブルを呼び出して、一つ一つ入れるのかぁ、といきなりため息が出る。ちょっとYouTubeに逃げる。もちろんネコとかではなくMySQLがらみの動画だけれど。
 phpMyAdmin、というプラットフォーム(?)の話をしている人がいる。なんか便利そう。でもその人はWindowsで使っている。Macでも動くかな。
 M1MacにphpMyAdminを入れる方法、が、すぐ見つかる。homebrewとphpとMySQLがすでに入ってるのが前提。phpが入ってないな。
 M1Macにphpを入れる、もすぐ見つかる。M1Macに・・・・という記事、多くなったなあ。

 じゃあ、入れてみるかな、と思いつつ、ちょっと立ち止まる。確かにterminalで打つより楽そうな気がする。だけど、これ、なんのためにあるんだろう。私に必要なのか? これってずっと、MySQLそのものを触るためのプラットフォームじゃないんだろうか。要はデータベースを作る人、保守・改善する人、のためじゃないのかな。

 私はというと、フロントも自分で作る個人開発だ。terminalからデータを入れるのがイヤなら、さっさとフロントにつなげて、フロントから入れたらいいんじゃないのか。

mysql1 !

 ということで、ぐだぐだ言ってないでflutterに繋いでみることにする。サンプルコードを貼っただけのプロジェクト、当然コードにエラーは出ない。UIも何にもないから、コンソールにうまく途中経過が表示されるかどうかだけが目安だ。
 で・・・・、走らせると、なんちゃらいっぱい文句を言われる。
 で、気の短い私はこういうとき、いったん止めて、なにも直さずにまた走らせる。ただのバカでしょ、と思うけど、うまく行くこともあるんだ。いや、ちゃんと走るという意味ではなく、エラーの内容が変わった。さっきは、意味わかりません、な内容だったが、今回はすごくシンプルで、即理解できる。

  • ****というテーブルはすでに存在しています。

 つまりこうだ。サンプルコードは以下のようになっている。

  • データベースに接続する。
  • テーブルをつくる。
  • データを挿入する。(できたよ、とコンソールに表示)
  • そのデータを取ってみる。(できたよ、とコンソールに表示)
  • そのデータを編集する。
  • 新しいデータを取ってみる。(できたよ、とコンソールに表示)
  • 接続を終了する。

 つまり、接続して、テーブルを作るところまではできたのだ。なので、テーブル名を変えて、新しいテーブルを作ってみた。するとまた最初の、意味わかりませんなエラーに戻った。

 でもきっと、新しいテーブルはできているだろう。なので、テーブルを作る部分をコメントアウトして、接続する、データを入れる、にしてみたのだが、また新しいエラーになった。これは英語としてはやさしい。

  • Cannot write to socket, it is closed.

 英語が簡単だからといって、対処できるわけではない。しょうがないからコメントアウトを外して、また新しい名前でテーブルをつくる。すると、最初から見ないふりを続けてきたエラー文に戻る。

[VERBOSE-2:dart_vm_initializer.cc(39)] Unhandled Exception: RangeError (byteOffset): Invalid value: Not in inclusive range 0..5: 7
#0 _ByteDataView.getUint16 (dart:typed_data-patch/typed_data_patch.dart:4822:7)
#1 Buffer.readUint16 (package:mysql1/src/buffer.dart:240:24)
#2 new PrepareOkPacket (package:mysql1/src/prepared_statements/prepare_ok_packet.dart:20:30)
#3 Handler.checkResponse (package:mysql1/src/handlers/handler.dart:68:24)
#4 PrepareHandler.processResponse (package:mysql1/src/prepared_statements/prepare_handler.dart:45:18)
#5 ReqRespConnection._handleData (package:mysql1/src/single_connection.dart:355:32)
#6 ReqRespConnection._handleHeader (package:mysql1/src/single_connection.dart:324:13)

#7 ReqRespConnection._readPacket (package:mysql1/src/single_connection.dart:309:7)

 はい、ぜんぜんわかりません。

 試しにterminalから見てみると、当然、テーブルがいくつもできている。そして、昨日作ったテーブルにはたった一つのデータが、そして他のテーブルは空っぽ。

 ということで、今日はここで挫折。また明日。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0