如何使用变量而不是字符串插入 mysql 数据库

How to insert into mysql database using a variable instead of a string

我正在尝试使用 luasql.mysql 并从文件到 mysql 数据库执行多个 INSERT 语句。我似乎无法弄清楚如何使用字符串变量而不是使用字符串。我想从一个 for 循环执行,循环遍历一个字符串文件。任何帮助将不胜感激。

mysql = require "luasql.mysql"
local env  = mysql.mysql()
local conn = env:connect('mydb','myusername','mypassword','myip')
print(env,conn)
file = io.open("sqldumps.sql")
lines = file:lines()
print("Contents of file:");
for line in lines do  
  status,errorString = conn:execute( '"line"' )
  print(status,errorString )
end

其实很简单:

for line in file:lines() do
  status, errorString = conn:execute(line)
  print(status, errorString)
end

Lua 知道 line 是一个字符串,所以你不需要在它周围加任何引号。事实上,如果您添加它们,Lua 会将其视为实际文本“行”,而不是 line 变量的内容。


关于 for 循环的提示:file:lines() 恰好 return 可以在 for 循环中使用的单个函数,但这不是总是这样。