我试图弄清楚如何在将 SQL 字符串交给执行之前对其进行参数化,但遗憾的是我在互联网上找到了很多这样的东西:
sql = "SELECT * FROM table_name WHERE thing LIKE '%#{input}%'"
这是一件坏事……但是,在底层Sequel库中可以使用参数化 sql 查询,这是 TinyTDS 构建的基础。所以我知道这是可能的。我只是很难弄清楚。
我真的希望它可以像这样简单:
@client = TinyTds::Client.new(
:adapter => 'sqlserver',
:host => host,
:database => db,
:username => username,
:password => password)
sql = "SELECT * FROM table_name WHERE thing LIKE ?"
safe_sql = @client.prepare(sql, input)
result = @client.execute(safe_sql)
我似乎Dataset
在源代码中找到了一个叫做类的东西,它有一个准备方法。问题是,我该如何使用它?在将它交给对象中的execute()
方法之前,我是否需要创建另一个@client
对象?我找不到一个initialize
或一个new
方法,所以简单的实例化似乎是错误的方法。