Я хотел бы изменить конфигурацию соединения с базой данных в Lua.Сначала я использовал luasql для подключения к postgresql.Тогда я бы хотел перейти с luasql на pgmoon.В настоящее время я могу использовать pgmoon для подключения к postgresql.Я также могу запросить запись из базы данных.Но это всегда ошибка 500, когда я использую этот код.local row = cur:fetch ({}, "a")
Я не уверен, что моя идея верна или нет.По моей идее, ошибка произошла из-за типа возвращаемого кода запроса к записи из базы данных.local cur = assert (con:execute(sql))
Когда я использую luasql, тип возвращаемого значения userdata
.local cur = assert(pg:query(sql))
Но когда я использую pgmoon выше, тип возвращаемого значения - таблица.Так что это повлияло на весь другой логический код из-за одной строки кода.
Я попытался найти pgmoon.Но там очень мало документов и ресурсов.Я также попытался использовать некоторый код вместо local row = cur:fetch ({}, "a")
.Например: я использовал cjson.decode(variable)
.Но это формат, отличный от кода выше.
1- код Luasql
local driver = require "luasql.postgres"
local env = assert (driver.postgres())
local con = assert (env:connect(SOURCENAME, USERNAME, PASSWORD, HOSTNAME, PORT))
local cur = assert (con:execute())
local rows = {}
local row = cur:fetch ({}, "a")
if ((row == nil) or (row.username == nil)) then
...
end
cur:close()
con:close()
env:close()
return rows
2- код pgmoon
local pgmoon = require("pgmoon")
local pg = pgmoon.new({
host = HOSTNAME,
port = PORT,
database = SOURCENAME,
user = USERNAME,
password = PASSWORD
})
assert(pg:connect())
local cur = assert(pg:query(sql))
local rows = {}
==> error start from here!!!!