Snap Web应用程序与MySQL连接

123*_*3Ex 2 mysql haskell haskell-snap-framework

我在过去的几天里一直在和Haskell合作.我使用Haskell和Snap创建了一个小型Web应用程序.我添加了一个HTML表单来获取用户数据并使用Haskell配置了一个mysql数据库.我可以使用Haskell检索数据.我想知道如何将用户输入插入数据库.

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

以下是我在Web应用程序中建立数据库连接的方法.现在我想连接这两个函数,但我不能在其中使用sqlExe echo,那么如何将数据插入到db中.这里缺少什么?

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" []
Run Code Online (Sandbox Code Playgroud)

如果有人能帮助我摆脱这个问题,我真的很感激.

mig*_*yte 5

Application是MonadIO的一个实例,所以你可以在echo中调用sqlExe,如下所示:

结果< - liftIO sqlExe