Tijdelijke aanduidingen (d.w.z. $1
, $2
, ...) zijn voor waarden. Een databasenaam (of tabelnaam, kolomnaam, ...) is een identifier. Dit is vergelijkbaar met het verschil tussen de naam van een variabele en de waarde die de variabele in Ruby heeft.
Als u dynamisch een identifier in een SQL moet invoegen, moet u string-interpolatie gebruiken en het speciale doel quote_ident
methode om ervoor te zorgen dat u het correct citeert. Dus iets meer als dit:
db_name = conn.quote_ident(db_name)
res = conn.exec("CREATE DATABASE #{db_name}")