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

时间:2016-08-09 13:54:18

标签: php mysql pdo

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

执行这两条指令时,会创建数据库,但其名称为“myDbName'”,包含引号。
如果我删除第一行中的引号,我将收到PHP错误,如果我从第二行删除,我将收到mySql错误。
有没有办法删除它们/使用正确的名称创建数据库而无需直接访问DBMS?
我真的不想在第二行硬编码名称

提前感谢您的答案

1 个答案:

答案 0 :(得分:2)

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

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

你也可以避免连接和使用var内部引用(如果你需要反对允许保留字,这可能很有用)

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