Lua 语言 MySQL:我的文件中的 ipairs 错误

我在我的 LUA 脚本中遇到了一个问题,我正在尝试在 MTA 游戏服务器上制作一个新服务器,并在我的脚本中使用 LUA 语言,但我有一个控制台错误并且不知道如何修复它。

控制台错误

File.lua 117 Line Error 以及文件代码

- 打开整个广告系统的主函数。
function openAdvertisements(player,command) 本地广告= { }--这些将保存我们发送到客户端的广告并填充我们的广告表。
如果不是玩家,则为源。

- 从数据库中获取所有广告
for _、广告在 ipairs (exports.mysql:select('advertisements'))中循环做
如果 tonumber (ad.expiry)> = tonumber (getRealTime().timestamp) then - 检查广告是否已过期,如果是,则删除。
 ad.author = exports.mysql:select_one ("characters",{ id = ad.created_by }).charactername
 table.insert(广告,广告)
 其他
 删除广告(广告 ID)
结束

triggerClientEvent(播放器,资源名称..显示全部“,根,`advertisements,exports.integration:isPlayerAdmin( player ))-将广告发送到客户端以创建 GUI.`

第 117 行错误: for _、ad in ipairs (exports.mysql:select('advertisements'))中循环做

点赞
用户16414828
用户16414828

试试这个。

database = dbConnect("mysql", "dbname=databasename;host=1.2.3.4;charset=utf8", "username", "password")

function getData()
    local result = {}
    local query = dbQuery(database, "select * from advertisements")
    result = dbPoll(query, -1)
    dbFree(query)
    if #result > 0 then
        return result
    else
        return {}
    end
end

-- 用来打开整个广告系统的主函数。
function openAdvertisements(player, command)
    local advertisements = {} -- 这将容纳我们要发送到客户端并填充我们的广告表的广告。
    if not player then
        player = source
    end

    -- 从数据库中获取所有广告。
    for _, ad in ipairs(getData()) do
        if tonumber(ad.expiry) >= tonumber(getRealTime().timestamp) then -- 检查广告是否过期,如果过期则删除。
            ad.author = exports.mysql:select_one("characters", { id = ad.created_by }).charactername
            table.insert(advertisements, ad)
        else
            deleteAdvertisement(ad.id)
        end
    end

    triggerClientEvent(player, resourceName .. ":display_all", root, `advertisements, exports.integration:isPlayerAdmin(player)`) -- 将广告发送到客户端以创建 GUI。
2021-07-09 13:43:35