前提・実現したいこと
mysql-haskellを使用してMySQLの個々のデータを取り出したいです。
https://qiita.com/lotz/items/1d9c7b4333fd4d29a150を参考にしてデータの一覧表示まではできたのですが、個々のデータの取り出し方がわかりません。
ここでは、MySQLで「SELECT comment FROM test where id=2;」を実行すると「test2」というデータが入っているのですが、この「test2」という文字列データの取り出し方がわかりません。
MySQLの型は「MySQLText」のようですが、これを文字列に変換する方法がわかりません。
該当のソースコード
書き方がわからず、「print (is :: 0)」のようにしてもエラーになります。
Haskell
1{-# LANGUAGE OverloadedStrings #-} 2 3module Main where 4 5import Lib 6 7import Database.MySQL.Base 8import qualified System.IO.Streams as Streams 9 10main :: IO () 11main = do 12 someFunc 13 14 conn <- connect 15 defaultConnectInfo {ciUser = "root", ciPassword = "password", ciDatabase = "test"} 16 (defs, is) <- query_ conn "SELECT comment FROM test where id=2;" 17 print =<< Streams.toList is 18 19 20 print (is :: 0)
発生している問題・エラーメッセージ
前記のコードでビルドを掛けると下記エラーになります。
apo@debian:~/doc/project/make/haskell/mysql-haskell_20200406/my-project$ stack build my-project> build (lib + exe) Preprocessing library for my-project-0.1.0.0.. Building library for my-project-0.1.0.0.. Preprocessing executable 'my-project-exe' for my-project-0.1.0.0.. Building executable 'my-project-exe' for my-project-0.1.0.0.. [2 of 2] Compiling Main /home/apo/doc/project/make/haskell/mysql-haskell_20200406/my-project/app/Main.hs:20:18: error: Illegal type: ‘0’ Perhaps you intended to use DataKinds | 20 | print (is :: 0) | ^ -- While building package my-project-0.1.0.0 using: /home/apo/.stack/setup-exe-cache/x86_64-linux-tinfo6/Cabal-simple_mPHDZzAJ_2.0.1.0_ghc-8.2.2 --builddir=.stack-work/dist/x86_64-linux-tinfo6/Cabal-2.0.1.0 build lib:my-project exe:my-project-exe --ghc-options " -fdiagnostics-color=always" Process exited with code: ExitFailure 1
試したこと
mysql-haskellの公式ページを見てみましたがわかりませんでした。
「mysql-haskell」でググってみましたがわかりませんでした。
「haskell MySQLText 変換」などでググってみましたがわかりませんでした。
レコード構文やパターンマッチを調べてみましたが、違うようです。
補足情報(FW/ツールのバージョンなど)
LTS: lts-11.22
stack Version: 2.1.3
OS: Debian10.3
全てのコード
https://github.com/ringo-apo/mysql-haskell_20200406
ご教示頂きたく、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/08 00:09
2020/04/12 23:04
2020/04/12 23:06