Placeholder (yaitu $1
, $2
, ...) adalah untuk nilai. Nama database (atau nama tabel, nama kolom, ...) adalah pengidentifikasi. Ini mirip dengan perbedaan antara nama variabel dan nilai yang dimiliki variabel di Ruby.
Jika Anda perlu memasukkan pengenal secara dinamis dalam beberapa SQL maka Anda perlu menggunakan interpolasi string dan tujuan khusus quote_ident
metode untuk memastikan Anda mengutipnya dengan benar. Jadi sesuatu yang lebih seperti ini:
db_name = conn.quote_ident(db_name)
res = conn.exec("CREATE DATABASE #{db_name}")