English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Lua データベースアクセス

本文では、Lua データベースの操作ライブラリについて紹介します:LuaSQL。これはオープンソースであり、サポートするデータベースには:ODBC、ADO、Oracle、MySQL、SQLite、および PostgreSQL があります。

本文では MySQL データベースの接続方法を紹介します。

LuaSQL は使用できます LuaRocks 必要に応じて、必要なデータベースドライバーをインストールできます。

LuaRocks インストール方法:

$ wget http://luarocks.org/releases/luarocks-2.2.1.tar.gz
$ tar zxpf luarocks-2.2.1.tar.gz
$ cd luarocks-2.2.1
$ ./configure; sudo make bootstrap
$ sudo luarocks install luasocket
$ lua
Lua 5.3.0 著作権(C) 1994-2015 Lua.org, PUC-Rio
> require "socket"

Window 下で LuaRocks をインストール:https://github.com/keplerproject/luarocks/wiki/Installation-instructions-for-Windows

異なるデータベースドライバーをインストール:

luarocks install luasql-sqlite3
luarocks install luasql-postgres
luarocks install luasql-mysql
luarocks install luasql-sqlite
luarocks install luasql-odbc

ソースコードのインストール方法も使用できます、Lua Github ソースコードのアドレス:https://github.com/keplerproject/luasql

Lua が MySql データベースに接続:

require "luasql.mysql"
--5.2 バージョン之后、require はもはやグローバル変数を定義しません。その返値を保存する必要があります。
--必要に応じて:
--luasql = require "luasql.mysql"
--環境オブジェクトの作成
env = luasql.mysql()
--データベースに接続
conn = env:connect("データ库名","ユーザー名","パスワード","IPアドレス",ポート)
--データベースのエンコード形式を設定
conn:execute"SET NAMES UTF8"
--データベース操作を実行
cur = conn:execute("select * from role
row = cur:fetch({},"a")
--ファイルオブジェクトの作成
file = io.open("role.txt","w+");
while row do
    var = string.format("%d %s\n", row.id, row.name)
    print(var)
    file:write(var)
    row = cur:fetch(row,"a")
end
file:close()  --ファイルオブジェクトを閉じる
conn:close()  --データベース接続を閉じる
env:close()   --データベース環境を閉じる