使用变量作为数据库名,用php/PDO创建一个新数据库


Creating a new database with php/PDO using a variable as the database name

$db_name = 'myDbName';
CREATE DATABASE IF NOT EXISTS `$db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

当这两个指令被执行时,数据库被创建了,但是它的名字是'myDbName',包括引号。
如果我在第一行删除引号,我将得到一个PHP错误,如果我从第二行删除,我将得到一个mySql错误。是否有一种方法可以删除它们/创建一个数据库与正确的名称,而不直接访问DBMS?
我真的不希望在第二行

中硬编码名称

提前感谢您的回答

您可以使用字符串连接并删除反引号

"CREATE DATABASE IF NOT EXISTS  " . $db_name . " DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";

你也可以避免在引号内使用concat和var(这可能是有用的,如果你需要反引号来允许保留字)

"CREATE DATABASE IF NOT EXISTS  '$db_name' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";