Snap Web应用程序与MySQL连接

时间:2011-04-26 03:30:12

标签: 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    

以下是我在Web应用程序中建立数据库连接的方法。现在我想连接这两个函数,但是我不能在echo中使用sqlExe,所以如何将数据插入到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" []

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

1 个答案:

答案 0 :(得分:5)

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

结果&lt; - liftIO sqlExe