目标
我正在尝试一个接一个地连接到两个不同的数据库。我知道第一个连接是有效的,因为我尝试创建一个新记录,并且它有效。当我尝试连接到第二个数据库并查询表时,逻辑失败并出现错误,指出我正在查询的表不存在。但我知道确实如此。
这是创建连接对象的测试代码:
local database1con
local database2con
local database1env
local database2env
local firstdatabase_connect = function()
if not database1con then
database1env = assert (luasql.sqlite3())
database1con = assert (database1env:connect("database1.sqlite"))
return true
else
return false
end
end
local seconddatabase_connect = function()
if not database2con then
database2env = assert (luasql.sqlite3())
database2con = assert (database2env:connect("database2.sqlite"))
return true
else
return false
end
end
local firstdatabase_disconnect = function()
if database1env then
database1env:close()
database1env = nil
end
if database1con then
database1con:close()
database1con = nil
end
end
local seconddatabase_disconnect = function()
if database2env then
database2env:close()
database2env = nil
end
if database2con then
database2con:close()
database2con = nil
end
end
这是尝试实际连接到数据库的逻辑:
local connected = firstdatabase_connect()
-- run some select & insert commands
firstdatabase_disconnect()
-- now connect to second database
sql = "INSERT INTO users VALUES("..user_id..", "..username.value..", 'test',"..os.date("%Y%m%d%H%M%S")..", Null,Null)"
local db2connected = seconddatabase_connect()
if db2connected then
local res, err = database2con:execute(sql)
if not res and err then
success = false
end
seconddatabase_disconnect()
end
问题
插入失败并显示以下消息: LuaSQL: no such table: users 用户表在 database1 中不存在,但在 database2 中存在。
到目前为止我测试过的
我想也许即使我与第一个数据库断开连接,它还是以某种方式检查了错误的数据库。因此,在调用 firstdatabase_disconnect() 之后,我添加了另一个选择语句,试图从第一个数据库中进行选择。
系统失败,并显示数据库 1 的连接对象为零的消息。这很好。
我不确定还有什么要测试的。如果您有任何建议,我将不胜感激。