2

最近几天我一直在使用 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 应用程序中建立数据库连接的方式。现在我想连接这两个函数,但是我不能在里面使用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" []

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

4

1 回答 1

5

Application 是 MonadIO 的一个实例,因此您可以从 echo 中调用 sqlExe,如下所示:

结果<-liftIO sqlExe

于 2011-04-26T03:48:01.447 回答