Snap веб-приложение соединяется с MySQL - PullRequest
2 голосов
/ 26 апреля 2011

Я работал с Haskell в последние несколько дней. Я создал небольшое веб-приложение, используя Haskell и Snap. Я добавил HTML-форму для получения пользовательских данных и настроил базу данных mysql с помощью Haskell. Я могу получить данные, используя Haskell. Я хочу знать, как я могу вставить пользовательский ввод в базу данных.

echo :: Application ()
echo = do      
  firstName <- decodedParam "firstname" 
  heistLocal (bindSplices echoSplices) $ render "echo"
  where   
    decodedParam p = fromMaybe "" <$> getParam p    

Ниже показано, как я установил соединение с базой данных в своем веб-приложении. Теперь я хочу соединить эти две функции, но я не могу использовать sqlExe в echo, так как я могу вставить данные в БД. Какой момент здесь отсутствует ??

sqlExe :: IO [[SqlValue]]
sqlExe =
  do conn <- connectMySQL defaultMySQLConnectInfo {
                  mysqlHost = "localhost",
                  mysqlDatabase = "test",
                  mysqlUser = "root",
                  mysqlPassword = "password",
                  mysqlUnixSocket = "/var/lib/mysql/mysql.sock" }               
     quickQuery conn "select* from Test" []

Я действительно ценю, если кто-то может помочь мне выйти из этой проблемы.

1 Ответ

5 голосов
/ 26 апреля 2011

Приложение является экземпляром MonadIO, поэтому вы можете вызвать sqlExe из echo следующим образом:

результат <- liftIO sqlExe </p>

...