0

我是LUA的初学者。我在 mysql 代理运行的 lua 文件中编写了以下代码。

function read_query(packet)
    if string.byte(packet) == proxy.COM_QUERY then
        local command = string.lower(packet)
        if string.find(command, "select") ~= nil and string.find(string.lower(packet), "from") ~= nil then
            local socket = require('socket')
            local conn, err = socket.connect('localhost', 5050)
            print(conn, err)
            proxy.response.type = proxy.MYSQLD_PACKET_OK
            //proxy.response.resultset get json from web service (url)
            proxy.response.resultset = {
                fields = {
                    { type = proxy.MYSQL_TYPE_INT, name = "id", },
                },
                rows = {
                    { 9001 }
                }
            }
            return proxy.PROXY_SEND_RESULT
        end
    end
end

我想连接到返回 JSON 文件的端口 5050 上的 Web 服务,并将它返回的 json 保存在 proxy.response.resultset 中。另一个问题,如何添加套接字模块。我粘贴如下图所示的文件

套接字模块文件

但报错:找不到/socket/core.lua。

4

1 回答 1

0

local socket = require('socket')

您正在使用 luasocket,它是 lua ( socket.lua) 和二进制 ( socket/core.so) 文件的混合。您需要设置(如果尚未设置)指向 .so 文件;像这样的东西可能会起作用:package.cpath=package.cpath..';./?.so'

于 2018-03-26T14:39:31.183 回答