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


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

--[[---------------------------------------------------------
    Initialises iSQL
-----------------------------------------------------------]]
function isql.Connect(addr, u, p, database)

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

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

        function isqldb.onConnected()
            print( "MySQL Server Version:", self:serverVersion() )
            print( "MySQL Server Info:", self:serverInfo() )
            print( "MySQL Host Info:", self:hostInfo() )


            Msg("iSQL: Sucessfully connected to " .. addr .."\n")

        end

        function isqldb.onConnectionFailed(self, error)

            print( "MySQL Connection Failed! Error:", error )

        end

        isqldb:connect()

        return true
    end



--[[---------------------------------------------------------
    Query
-----------------------------------------------------------]]
function isql.Query( query, qtype )
        if not isqldb then
            MsgN("premature db call:")
            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
它甚至没有说成功连接,我不确定为什么

最佳答案

这不是Mysqloo或tmysql4的方式,您实际上不应同时使用它们。

现在开始吧:
它是DATABASE_METATABLE:onConnected(),带有“:”而不是“”。

对于Mysqloo中所有函数的方法都相同。

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

祝好运

07-28 11:51