attempt to index a nil value (global 'luasql')

require ’socket‘

require ’luasql.mysql'

上述返回结果都是正常

但是执行 env = luasql.mysql(),报错:

stdin:1: attempt to index a nil value (global 'luasql')
stack traceback:
stdin:1: in main chunk
[C]: in ?

解决方法:

luasql= require ‘luasql.mysql'

env = luasql.mysql()或env = assert (luasql.mysql())

结果正常

原因:从lua 5.2 之后,require不再定义全局变量,需要保存其返回值。

参考链接:

http://stackoverflow.com/questions/10854971/luasql-nil-value/11657205

原文地址:https://www.cnblogs.com/a9999/p/6874203.html