-- 加载动态库 lib = assert(package.loadlib("luasql/mysql.dll","luaopen_luasql_mysql")) lib() -- 创建环境对象 env = assert (luasql.mysql()) -- 连接数据库 con = assert (env:connect ("test", "root", "123456", "localhost")) -- 删除数据库中的 players 数据表 --assert (con:execute"DROP TABLE players") -- 创建 players 数据表 assert (con:execute[[ CREATE TABLE players( name varchar(50), class varchar(50) ) ]]) -- 添加一些记录 list = { {name="Nick Gammon", class="mage",}, {name="David Haley", class="warrior",}, {name="Shadowfyr", class="priest",} } for i, p in pairs (list) do assert (con:execute(string.format([[ INSERT INTO players VALUES (‘%s‘, ‘%s‘)]], p.name, p.class) )) end -- for loop -- 执行一个查询语句, 返回游标对象 cur = assert (con:execute ("SELECT * from players" )) tt = cur:getcolnames() cc = cur:getcoltypes() table.foreach(tt, print) table.foreach(cc, print) -- 打印结果中的所有记录 t = {} row = cur:fetch (t, "n") while row do print ("\n------ 新纪录 ---------\n") table.foreach (row, print) -- 重复使用这个表, 以节省资源 row = cur:fetch (row, "n") end -- while loop -- 关闭和数据库有关的所有对象 cur:close() con:close() env:close()