Luasql 和 SQLite?
2010-5-5 12:56:7
收藏:0
阅读:189
评论:2
我刚开始学习 Lua,作为访问 SQLite DLL 的简便方法,但是在尝试使用 DB-agnostic LuaSQL 模块时遇到了错误:
require "luasql.sqlite"
module "luasql.sqlite"
print("Content-type: Text/html\n")
print("Hello!")
请注意,我试图从最基本的设置开始,因此在工作目录中只有以下文件,并且 sqlite.dll 实际上是 LuaForge 网站中重命名的 sqlite3.dll:
Directory of C:\Temp
<DIR> luasql
lua5.1.exe
lua5.1.dll
hello.lua
Directory of C:\Temp\luasql
sqlite.dll
我遗漏了某些二进制文件吗,这可以解释错误吗?
谢谢。
编辑:我将 DLL 重命名为其原始的 sqlite3.dll,并更新了源代码以反映此更改(最初是因为在我找到的示例中是这样称呼的)。
此时,代码如下所示…
require "luasql.sqlite3"
-- attempt to call field 'sqlite' (a nil value)
env = luasql.sqlite()
env:close()
…以及我得到的错误消息:
C:\>lua5.1.exe hello.lua
lua5.1.exe: hello.lua:4: attempt to call field 'sqlite' (a nil value)
编辑:找到了原因: env = luasql.sqlite3() 而不是 env = luasql.sqlite()。
对于像我这样的新手,这是使用最新的 SQLite LuaSQL 驱动程序 的完整示例:
require "luasql.sqlite3"
env = luasql.sqlite3()
conn = env:connect("test.sqlite")
assert(conn:execute("create table if not exists tbl1(one varchar(10), two smallint)"))
assert(conn:execute("insert into tbl1 values('hello!',10)"))
assert(conn:execute("insert into tbl1 values('goodbye',20)"))
cursor = assert(conn:execute("select * from tbl1"))
row = {}
while cursor:fetch(row) do
print(table.concat(row, '|'))
end
cursor:close()
conn:close()
env:close()
谢谢。
原文链接 https://stackoverflow.com/questions/2773071
点赞
stackoverflow用户1491
在您编辑的片段中,您正在加载luasql.sqlite3
模块并尝试访问luasql.sqlite
驱动程序。请注意,sqlite3
与sqlite
不同...
2010-05-05 12:59:04
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
不要重命名 DLL 文件:这会导致 Lua 找不到与 DLL 文件同名的初始化函数。
不需要
module
调用,只需要require
。module
用于创建模块,而不是使用模块。编辑:根据 LuaSQL 文档,看起来需要调用
luasql.sqlite3()
而不是luasql.sqlite()
。