Tag: prepared statement

使用PostgreSQL使用ActiveRecord准备和执行语句

我试图通过使用ActiveRecord的预准备语句插入值。 但是,每次我尝试: conn = ActiveRecord::Base.connection conn.prepare “SELECT * from sampletable where id = $1” conn.execute 3 在第二个陈述之后,我得到: NoMethodError: undefined method `prepare’ for # 我该怎么办? 我正在运行Rails 3.2.1和Ruby 1.9.2 更新: 我解决了这个问题。 感谢您的回复,但它对PostgreSQL无效。 这样做的方法是: stmt = “SELECT * from sampletable where id = $1 and name = $2” values = [ { value: 1}, { value: “henry” } […]

关于Rails中Postgresql的准备声明

现在我正在从SQLite迁移到Postgresql,我遇到了这个问题。 以下准备好的语句适用于SQLite: id = 5 st = ActiveRecord::Base.connection.raw_connection.prepare(“DELETE FROM my_table WHERE id = ?”) st.execute(id) st.close 不幸的是它不能与Postgresql一起使用 – 它在第2行引发了一个例外。我一直在寻找解决方案,并且遇到了这个问题: id = 5 require ‘pg’ conn = PG::Connection.open(:dbname => ‘my_db_development’) conn.prepare(‘statement1’, ‘DELETE FROM my_table WHERE id = $1’) conn.exec_prepared(‘statement1’, [ id ]) 这个在第3行失败。当我打印这样的exception时 rescue => ex ex包含这个 {“connection”:{}} 在命令行中执行SQL是有效的。 知道我做错了什么吗? 提前致谢!

准备好的陈述已经存在

我正在尝试使用pg gem中的ruby中的预处理语句。 这就是我的陈述的样子 conn.prepare(“insert_values”, “insert into ” + objectName + “(” + headerStr + “) values (” + prep_values + “)”) conn.exec_prepared(“insert_values”, arr) 我一直在收到错误 准备好的语句insert_values已经存在。 我该如何解决?? 谢谢