sql - 如何使用 Sequel 运行原始 SQL 查询

标签 sql ruby sequel

我还不清楚使用 Sequel 运行原始 SQL 查询的正确方法。

目前我正在尝试这个:

DB.fetch("SELECT * FROM zone WHERE dialcode = '#{@dialcode}' LIMIT 1") do |row|
 @zonename = row
end

我怎样才能将查询作为原始 SQL 运行,然后像平常一样访问结果?

if @zonename.name = "UK"

最佳答案

请注意,而不是:

DB.fetch("SELECT * FROM zone WHERE dialcode = '#{@dialcode}' LIMIT 1")

你应该这样做:

DB.fetch("SELECT * FROM zone WHERE dialcode = ? LIMIT 1", @dialcode)

否则,如果您不控制 @dialcode 的内容,您将面临 SQL 注入(inject)。

关于sql - 如何使用 Sequel 运行原始 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3144813/

相关文章:

php - mysql 代码中重复输入 key 'PRIMARY'

MySQL 错误: `query':Ruby 文件上的键 3 (Mysql2::Error) 重复条目 ''

ruby - 为什么要私有(private)封装私有(private)常量?

mysql - 使用 Datamapper 配置 MYSQL

Ruby Sequel 模型对创建和不更新进行验证

ruby - 如何使用 Sequel 连接到 postgres 数据库?

ruby - 在 Sequel 中热切加载多对多关联

SQL - datediff(分钟)不包括周末

sql - IS NULL 与 <> 1 SQL 位

sql - Postgres 查询运行时间超过statement_timeout