Заместители (т.е. $1
, $2
, ...) са за стойности. Име на база данни (или име на таблица, име на колона, ...) е идентификатор. Това е подобно на разликата между име на променлива и стойността, която променливата съдържа в Ruby.
Ако трябва динамично да вмъкнете идентификатор в някакъв SQL, тогава трябва да използвате интерполация на низове и специална цел quote_ident
метод, за да сте сигурни, че го цитирате правилно. Така че нещо повече като това:
db_name = conn.quote_ident(db_name)
res = conn.exec("CREATE DATABASE #{db_name}")