💬

ruby pg gemでのプリペアドステートメントの書き方サンプル

2022/11/10に公開

前提条件

id, title, contentカラムがある、テーブルmemosのtitleとcontentカラムを更新する

プリペアドステートメントを使っていないver

conn.exec("UPDATE memos SET title = 'hoge1', content = 'hoge2' WHERE id =hoge3)

プリペアドステートメントを使う

sql文の中に$1,$2など用意し、exec_paramsメソッドの第2引数に配列で指定する(配列の順番が$1,$2の順番に対応する)

conn = PG.connect( dbname: 'memo_app' )

sql = %q{UPDATE memos SET title = ($1), content = ($2) WHERE id = ($3)}
conn.exec_params(sql,[hoge1, hoge2, hoge3])

pgのドキュメントはこちら
https://deveiate.org/code/pg/PG/Connection.html#method-i-exec_params

Discussion