创建数据库如果不从DBAL水平

问题描述:

存在我试图创建数据库这样的:创建数据库如果不从DBAL水平

const QUERY_DB_CREATE = " 
    CREATE DATABASE :db_name 
"; 
if (database is not exists) { 
    $stmt = $conn->prepare(self::QUERY_DB_CREATE); 
    $stmt->bindValue(':db_name', $db_name, 'string'); 

    return $stmt->execute(); 
} 

错误

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "'testtesttest2'" 

我在做什么错?

+0

我怀疑很多事情都是错误的。首先,您不能在准备好的语句中使用表名和列名的参数。 – Cerad

您应该看看DoctrineBundle command(用于Symfony框架)来创建数据库。不知道更多关于您的实施细节,这些行尤其应该对你的情况有用:

$tmpConnection = DriverManager::getConnection($params); 
    ... 
    $tmpConnection->getSchemaManager()->createDatabase($name);