5

ActiveRecordを使用してプリペアドステートメントを介して値を挿入しようとしています。しかし、私が試すたびに:

conn = ActiveRecord::Base.connection
conn.prepare "SELECT * from sampletable where id = $1"
conn.execute 3

2番目のステートメントの後、次のようになります。

NoMethodError: undefined method `prepare' for
#<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter:0x000001027442c8>

私は何をすべきか?Rails3.2.1とRuby1.9.2を実行しています

アップデート:

私は問題を解決しました。返信ありがとうございますが、PostgreSQLでは機能しませんでした。それを行う方法は次のとおりです。

stmt = "SELECT * from sampletable where id = $1 and name = $2"
values = [ { value: 1}, { value: "henry" } ]

ここで、valuesはハッシュの配列であり、それぞれが値を指定します。$ 1は0番目のハッシュにバインドされ、$2は配列の2番目のハッシュにバインドされます。

con = PG::Connection.new(:dbname => "development_DB")
con.prepare("insert", stmt)
con.exec_prepared("insert", values)
con.close()

そして、これ、ご列席の皆様、うまくいきます!

4

1 に答える 1