Lua尝试对全局“金额”(零值)执行算术运算

Lua尝试对全局“金额”(零值)执行算术运算,lua,Lua,当我尝试使用脚本函数时,出现以下错误: attempt to perform arithmetic on global 'amount' (a nil value) 这就是功能: <> function openAdvertisements( player, command ) local advertisements = { } --These will hold our advertisements to send to the client and populate

当我尝试使用脚本函数时,出现以下错误:

attempt to perform arithmetic on global 'amount' (a nil value)
这就是功能:

<>
function openAdvertisements( player, command )
    local advertisements = { } --These will hold our advertisements to send to the client and populate our advertisement tables.

    if not player then player = source end

    --Fetch all of the advertisements from the database --mysql:query("SELECT * FROM 'advertisements' WHERE 1")
    for _, ad in ipairs( call(getResourceFromName("mysql"), "query_free", "UPDATE `accounts` SET `dm`=`dm`-".. amount*2000 .." WHERE `id`=".. tostring(gameAccountID)  .."")  ) do
        if tonumber( ad.expiry ) >= tonumber( getRealTime().timestamp ) then --Check if the advertisement has expired, delete it if so.
            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 ) ) --Send the advertisements to the client to create the GUI.
end
您还没有定义局部金额变量,所以lua会在全局表_ENV或_G中查找它,具体取决于lua的版本,在全局表中,对于不存在的键,它不会太零


Lua试图执行nil*2000,这导致了该错误。

变量amount没有值,因此它是nil,尝试计算nil*2000会导致错误,因为nil不是数字,也不是可转换为数字的字符串。我发现了一个类似的主题,他们说,我必须更改此callgetResourceFromNamemysql,无需查询,更新帐户集dm=dm-。。金额*2000。。其中id=。。tostringgameAccountID。。对于这个mysql:querySELECT*FROM'advisions'其中1,但是现在我有另一个错误,尝试将全局'mysql'索引为nil值
for _, ad in ipairs( call(getResourceFromName("mysql"), "query_free", "UPDATE `accounts` SET `dm`=`dm`-".. amount*2000 .." WHERE `id`=".. tostring(gameAccountID)  .."")  ) do