Ответ 1
Жемчуг pg
хочет, чтобы вы использовали пронумерованные заполнители ($1
, $2
,...) вместо позиционных заполнителей (?
):
conn = PG.connect(:dbname => 'db1')
conn.prepare('statement1', 'insert into table1 (id, name, profile) values ($1, $2, $3)')
conn.exec_prepared('statement1', [ 11, 'J.R. "Bob" Dobbs', 'Too much is always better than not enough.' ])
В прекрасном руководстве есть следующее:
- (PGresult) prepare(stmt_name, sql[, param_types ])
[...]
Параметры связывания PostgreSQL представлены в виде запросов от $1, $1, $2 и т.д. Внутри SQL-запроса.
И снова для exec_prepared
:
Параметры связывания PostgreSQL представлены в виде запросов в виде $1, $1, $2 и т.д. 0-й элемент массива params привязан к $1, 1-й элемент привязан к $2 и т.д.