Garrysmod SQL 封装器

require( "mysqloo" )
require( "tmysql4" )

isqldb = mysqloo.connect(DETAILS) || { }
isql = isqldb || { }

--[[---------------------------------------------------------
    初始化 iSQL
-----------------------------------------------------------]]
function isql.Connect(addr, u, p, database)

        print( "MySQL 连接中:", addr )
        isqldb = mysqloo.connect(addr, u, p, database, 3306)

        -- tsql hack
        tmysql.initialize(addr, u, p, database, 3306)

        function isqldb.onConnected()
            print( "MySQL 服务器版本:", self:serverVersion() )
            print( "MySQL 服务器信息:", self:serverInfo() )
            print( "MySQL 主机信息:", self:hostInfo() )

            Msg("iSQL: 成功连接到 " .. addr .."\n")

        end

        function isqldb.onConnectionFailed(self, error)

            print( "MySQL 连接失败! 错误信息:", error )

        end

        isqldb:connect()

        return true
    end

--[[---------------------------------------------------------
    查询
-----------------------------------------------------------]]
function isql.Query( query, qtype )
        if not isqldb then
            MsgN("过早调用数据库:")
            debug.Trace()
        end

        local q = isqldb:query( query )
        q:start()
        q:wait()
        if (q:error() == "") then
            return q:getData(), true
        else
            q:error()
            return nil, false
        end

    end

我尝试在我的 mysql 服务器上连接并执行它,但它无法连接或调试。有人能注意到我错了哪里吗?

这使用 mysqloo 和 tmysql4,或者我应该只使用 mysqloo

它甚至没有说成功连接,我不确定为什么

点赞
用户8895039
用户8895039

这不是 Mysqloo 或 tmysql4 所要使用的方式,你真的不应该把它们两个一起使用。

现在我们继续: 它是DATABASE_METATABLE:onConnected()用“:”而不是“。”。

Mysqloo 中的所有方法都是函数,都是这样。

为什么要写这样的查询? 你有QUERY_METATABLE:onSuccess(data)QUERY_METATABLE:onError(err,sql)

祝你好运。

2017-11-13 15:21:15