小编典典

如何引用LuaSQL的值?

sql

LuaSQL似乎是Lua中大多数SQL数据库系统的规范库,但似乎没有任何引用/转义查询值的功能。我正在编写一个使用SQLite作为后端的应用程序,并且我很想使用像Python的DB-
API
指定的接口那样的接口

c.execute('select * from stocks where symbol=?', t)

但我什至会满足于一些愚蠢的事情,例如:

conn:execute("select * from stocks where symbol=" + luasql.sqlite.quote(t))

还有其他支持SQLite引用的Lua库吗?(LuaSQLite3似乎没有。)或者我是否缺少有关LuaSQL的内容?我担心推出自己的解决方案(使用正则表达式等)并弄错了。我应该只为sqlite3_snprintf写一个包装器吗?


阅读 157

收藏
2021-05-05

共1个答案

小编典典

我已经有一段时间没有看过LuaSQL了,但是上次我检查它不支持它。我使用Lua-Sqlite3。

require("sqlite3")

db = sqlite3.open_memory()

db:exec[[ CREATE TABLE tbl( first_name TEXT, last_name TEXT ); ]]

stmt = db:prepare[[ INSERT INTO tbl(first_name, last_name) VALUES(:first_name, :last_name) ]]

stmt:bind({first_name="hawkeye", last_name="pierce"}):exec()
stmt:bind({first_name="henry", last_name="blake"}):exec()

for r in db:rows("SELECT * FROM tbl") do
    print(r.first_name,r.last_name)
end
2021-05-05