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から見てみると、当然、テーブルがいくつもできている。そして、昨日作ったテーブルにはたった一つのデータが、そして他のテーブルは空っぽ。
ということで、今日はここで挫折。また明日。