Pladsholdere (dvs. $1
, $2
, ...) er for værdier. Et databasenavn (eller tabelnavn, kolonnenavn, ...) er en identifikator. Dette svarer til forskellen mellem et variabelnavn og den værdi, variablen har i Ruby.
Hvis du har brug for dynamisk at indsætte en identifikator i noget SQL, skal du bruge strenginterpolation og det særlige formål quote_ident
metode til at sikre, at du citerer det korrekt. Så noget mere som dette:
db_name = conn.quote_ident(db_name)
res = conn.exec("CREATE DATABASE #{db_name}")