Mysql 在Lua中向文件写入多行

Mysql 在Lua中向文件写入多行,mysql,lua,lua-table,Mysql,Lua,Lua Table,我尝试在Lua中向一个文件写入多行代码,但我不知道该怎么做。我试过这个: local category = io.open("/usr/home/game/share/locale/germany/category.txt", "w") category:write(mysql_query("USE account; SELECT DISTINCT itemshop_categories.category AS a, itemshop_categories.id AS b FROM itemsh

我尝试在Lua中向一个文件写入多行代码,但我不知道该怎么做。我试过这个:

local category = io.open("/usr/home/game/share/locale/germany/category.txt", "w")
category:write(mysql_query("USE account; SELECT DISTINCT itemshop_categories.category AS a, itemshop_categories.id AS b FROM itemshop INNER JOIN itemshop_categories ON itemshop.category_id = itemshop_categories.id ORDER BY itemshop.category_id ASC;"))
category:close()
mysql\u query给了我这样一个表

{
{"1_1", "1_2"},
{"2_1", "2_2"},
{"3_1", "3_2"}
}
所以我想将其写入.txt文件,但它不起作用。 如果我能让它工作,我能像这样读这个文件吗

local category = io.open("/usr/home/game/share/locale/germany/category.txt", "r")
category:read()[2][1]
category:close()

要获取“2\u 1”

您需要遍历mysql\u查询返回的表,并手动写入其内容:

for k,v in ipairs(mysql_query("USE account; SELECT DISTINCT itemshop_categories.category AS a, itemshop_categories.id AS b FROM itemshop INNER JOIN itemshop_categories ON itemshop.category_id = itemshop_categories.id ORDER BY itemshop.category_id ASC;")) do
 category:write(k,"\t",v,"\n")
end

要将其读回,您需要逐行读取文件(可能使用
io.lines
),将每行拆分为两个字段,并根据需要处理字段。

您需要遍历由
mysql\u query
返回的表,并手动写入其内容:

for k,v in ipairs(mysql_query("USE account; SELECT DISTINCT itemshop_categories.category AS a, itemshop_categories.id AS b FROM itemshop INNER JOIN itemshop_categories ON itemshop.category_id = itemshop_categories.id ORDER BY itemshop.category_id ASC;")) do
 category:write(k,"\t",v,"\n")
end

要将其读回,可以逐行读取文件(可能使用
io.lines
),将每行拆分为两个字段,然后根据需要处理字段。

不能直接将表写入文件。你必须序列化它。如果您正确地序列化了它,那么只需将该文件作为lua代码加载回来,就可以得到一个相同的表

编写简单的表序列化程序并不复杂。写一本健壮的书有点难。幸运的是,lua-users.orgWiki上的优秀人员已经编写了许多这样的序列化机制(质量和功能支持各不相同)


找到一个适合你的目的

不能直接将表写入文件。你必须序列化它。如果您正确地序列化了它,那么只需将该文件作为lua代码加载回来,就可以得到一个相同的表

编写简单的表序列化程序并不复杂。写一本健壮的书有点难。幸运的是,lua-users.orgWiki上的优秀人员已经编写了许多这样的序列化机制(质量和功能支持各不相同)


找到一个适合你的目的

谢谢,我也找到了。我在我的库中实现了SaveTableToFile函数,并试图像这样获取它的信息:比如(table.load(“/usr/home/game/share/locale/dermany/quest/Ingame_Itemshop/category.lua”).a[1])(比如像print一样),但它不工作……它怎么不工作?那里的
.a
是什么?您的示例没有命名密钥。您从
表中得到了什么。加载
?lua的分类是什么?这只是一个简单的问题。。。我忘记了在quest_函数列表中输入新函数名,这是使用它们所必需的。现在很好用。谢谢你的帮助:)谢谢,我也找到了。我在我的库中实现了SaveTableToFile函数,并试图像这样获取它的信息:比如(table.load(“/usr/home/game/share/locale/dermany/quest/Ingame_Itemshop/category.lua”).a[1])(比如像print一样),但它不工作……它怎么不工作?那里的
.a
是什么?您的示例没有命名密钥。您从
表中得到了什么。加载
?lua的分类是什么?这只是一个简单的问题。。。我忘记了在quest_函数列表中输入新函数名,这是使用它们所必需的。现在很好用。谢谢你的帮助:)