Segnaposto (ad esempio $1
, $2
, ...) sono per i valori. Un nome di database (o nome di tabella, nome di colonna, ...) è un identificatore. Questo è simile alla differenza tra il nome di una variabile e il valore che la variabile contiene in Ruby.
Se è necessario inserire dinamicamente un identificatore in alcuni SQL, è necessario utilizzare l'interpolazione di stringhe e lo scopo speciale quote_ident
metodo per assicurarti di citarlo correttamente. Quindi qualcosa di più simile a questo:
db_name = conn.quote_ident(db_name)
res = conn.exec("CREATE DATABASE #{db_name}")