首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lua string.format转义

Lua string.format转义
EN

Stack Overflow用户
提问于 2016-02-29 16:35:59
回答 1查看 1K关注 0票数 2

例如,我想转义lua中的单引号:

到目前为止,我的脚本使用sqlite获取mysql表的一些数据:

代码语言:javascript
复制
local sqlCmd = string.format([[INSERT INTO temp_storage
SET     gID = '%s'
]], gID)

问题是,gID也可以包含单引号',但是sql语句则包含错误。

如何防止这种情况发生?我并不是真的在寻找一种搜索和替换的方法-更多的是一个内置函数来替换,这样sql仍然是有效的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-01 00:43:28

我们缺少一些关于如何在sqlite3 db上执行查询的信息,您使用的是哪个库?

其次,将在db上执行的“字符串”连接起来是不安全的,这会导致注入。这样做的安全方法是绑定参数,即“通知”db将输入作为param (仅为)处理,这与以前的方法相反。

从我为此目的所知道的库中,LuaSQLite3将完成这项工作(在代码中表示为"lsqlite3“)。

您使用的基本api是:

代码语言:javascript
复制
local sqlite3 = require("lsqlite3")
local db = sqlite3.open_memory()

gID = 6

local insert_stmt = assert( db:prepare("INSERT INTO temp_storage SET gID = ?") )
insert_stmt:bind_values(gID)
insert_stmt:step()
insert_stmt:reset()

我修改了其中一个官方示例("statement.lua")。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35704704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档