MySql / Lib / Ambigous选项

问题描述 投票:0回答:1

为什么有人可以帮助我,我在我的系统上得到了有关更新计时器和排名的代码:

    function dungeonLib.update_ranking(dungeonID, rankingType)
    cmdchat(string.format("CleanDungeonRanking"))

    local dungeonID = tonumber(dungeonID)
    local rankingType = tonumber(rankingType)
    local query

    if rankingType == 1 then
        query = mysql_query("SELECT name, level, finished FROM log.dungeon_ranking WHERE dungeon_id = '"..dungeonID.."' ORDER BY finished DESC LIMIT 100;")
    elseif rankingType == 2 then
        query = mysql_query("SELECT name, level, fastest_time FROM log.dungeon_ranking WHERE dungeon_id = '"..dungeonID.."' ORDER BY fastest_time ASC LIMIT 100;")
    elseif rankingType == 3 then
        query = mysql_query("SELECT name, level, highest_damage FROM log.dungeon_ranking WHERE dungeon_id = '"..dungeonID.."' ORDER BY highest_damage DESC LIMIT 100;")
    end

    if table.getn(query) > 0 then
        for index in ipairs(query) do
            if rankingType == 1 then
                cmdchat(string.format("UpdateDungeonRanking %s %d %d",
                    query.name[index],
                    query.level[index],
                    query.finished[index]
                ))
            elseif rankingType == 2 then
                cmdchat(string.format("UpdateDungeonRanking %s %d %d",
                    query.name[index],
                    query.level[index],
                    query.fastest_time[index]
                ))
            elseif rankingType == 3 then
                cmdchat(string.format("UpdateDungeonRanking %s %d %d",
                    query.name[index],
                    query.level[index],
                    query.highest_damage[index]
                ))
            end
        end
    end

    cmdchat(string.format("OpenDungeonRanking"))
end

    function dungeonLib.update_rank(dungeonID, name, level, finished, fastestTime, highestDamage)
    local query = mysql_query("SELECT * FROM log.dungeon_ranking WHERE dungeon_id = '"..dungeonID.."' and name = '"..name.."';")
    if table.getn(query) > 0 then
        return mysql_query("UPDATE log.dungeon_ranking SET level = "..level..", finished = finished + "..finished..", fastest_time = "..fastestTime..", highest_damage = "..highestDamage.." WHERE dungeon_id = "..dungeonID.." and name = '"..name.."';")
    else
        return mysql_query("INSERT INTO log.dungeon_ranking VALUES("..dungeonID..", '"..name.."', "..level..", "..finished..", "..fastestTime..", "..highestDamage..");")
    end
end

function dungeonLib.get_rank(dungeonID, name, pointType)
    local dungeonID = tonumber(dungeonID) - 1
    local name = tostring(name)
    local pointType = tonumber(pointType)
    local query = mysql_query("SELECT finished, fastest_time, highest_damage FROM log.dungeon_ranking WHERE dungeon_id = "..dungeonID.." and name = '"..name.."';")

    if table.getn(query) > 0 then
        if pointType == 1 then return query.finished[1]
        elseif pointType == 2 then return query.fastest_time[1]
        elseif pointType == 3 then return query.highest_damage[1]
        else return 0 end
    else return 0 end
end

当我尝试使用排名命令时,我在freebsd上遇到了该错误:

* Mysql:模糊选项'--e = SELECT完成,最快的时间,log.ranking名称为“ ..”的损坏最大。 (Enable_Cleartext_plugin,execute)*

mysql lib
1个回答
0
投票
[levelmysql中的保留关键字,用tick括起来。
© www.soinside.com 2019 - 2024. All rights reserved.