使用Ruby在SQLite中绑定URI参数

时间:2013-07-16 16:55:08

标签: ruby sqlite prepared-statement

我想使用以下代码将网页的URL存储在我的数据库中:

def add_page(database, url, title)
  sql = "insert into paginas(url, titulo) values(:url, :titulo)"
  database.execute(sql, "url" => url, "titulo" => title)
end

但是我收到了这个错误:

/home/cris/.rvm/gems/ruby-2.0.0-p247/gems/sqlite3-1.3.7/lib/sqlite3/statement.rb:39:in `bind_param': can't prepare URI::HTTP (RuntimeError)

有什么方法可以解决这个问题吗?

PS:以下代码正常运行:

def add_page(database, url, title)
  sql = "insert into paginas(url, titulo) values('#{url}', '#{title}')"
  database.execute(sql)
end

1 个答案:

答案 0 :(得分:1)

我猜SQLite驱动程序不知道如何将URI::HTTP转换为SQLite本机类型。您可以通过将URI转换回String来帮助它:

database.execute(sql, "url" => url.to_s, "titulo" => title)