Я пытаюсь понять, как параметризовать строку SQL, прежде чем передать ее на выполнение, но, к сожалению, я нахожу много этого в Интернете:
sql = "SELECT * FROM table_name WHERE thing LIKE '%#{input}%'"
Это плохо ... однако параметризация запросов sql доступна в базовой библиотеке Sequel. , на котором построен 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
, поэтому создание простого экземпляра кажется неправильным.
DB
? - person iain   schedule 25.01.2013prepare
, и это автоматически сделает ввод безопасным. См. документ для пользователей SQL, чтобы узнать, как запускать SQL напрямую. - person iain   schedule 25.01.2013