1

MYSQL サーバーと MYSQL-PROXY があり、SELECT クエリへの応答としてクライアントに送信する結果を操作しようとしています。私はluaでこのコードを書きました:

function string.starts(String,Start)
   return string.sub(String,1,string.len(Start))==Start
end

function read_query_result(inj)
        local fn = 1
        local fields = inj.resultset.fields
        while fields[fn] do
            fn = fn + 1
        end
        fn = fn - 1
        print("FIELD NUMBER: " .. fn)
        for row in inj.resultset.rows do
            print ("--------------")
            for i = 1, fn do
                if (string.starts(fields[i].name,"TEST")) then
                    row[i]="TESTED"
                end
                print ("DATA: " ..  fields[i].name .. " -> " .. row[i])
            end
        end
        return proxy.PROXY_SEND_RESULT
end

フィールド名と値を正しく読み取ることができます。結果を変更したい状況を検出できますが、クライアントに送信されたデータを取得できません。

2 つの問題があります。

  • ローカル行変数に値を設定していますが、実際の結果セット (inj.Resultset.row[i] など) を設定する方法が見つかりません。
  • return proxy.PROXY_SEND_RESULTその文にコメントするたびに結果が表示され、コメントを外すとエラーが発生するため、何か問題があります。

参考になるコード例が見つかりませんでした。

4

1 に答える 1