Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无法使用PDO创建数据库架构_Mysql_Pdo - Fatal编程技术网

Mysql 无法使用PDO创建数据库架构

Mysql 无法使用PDO创建数据库架构,mysql,pdo,Mysql,Pdo,我无法创建MySQL数据库模式并通过PDO分配用户权限,我找不到我的代码有任何错误: $db = $this->pdo->prepare( 'CREATE SCHEMA :dbName; GRANT ALL ON :dbName.* TO :dbUser@`localhost` IDENTIFIED BY :dbPassword' ); $db->bindParam( ':dbName', $dbName,

我无法创建MySQL数据库模式并通过PDO分配用户权限,我找不到我的代码有任何错误:

    $db = $this->pdo->prepare( 'CREATE SCHEMA :dbName;
                            GRANT ALL ON :dbName.* TO :dbUser@`localhost` IDENTIFIED BY :dbPassword' );
    $db->bindParam( ':dbName', $dbName, PDO::PARAM_STR );
    $db->bindParam( ':dbUser', $dbUser, PDO::PARAM_STR );
    $db->bindParam( ':dbPassword', $dbPassword, PDO::PARAM_STR );
    $db->execute();
    var_export($db->errorInfo());
返回: '您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在“测试”附近使用的正确语法;将“测试”中的所有内容授予第1行的“测试”

  • 参数(如
    :dbName
    )采用标量输入,如字符串和数字。不能将它们用于列名或表名;这些必须显式地输入到查询中。也就是说,
    CREATE SCHEMA'test'
    将失败,但您需要的是
    CREATE SCHEMA test
  • PDO不能在单个语句中运行多个查询(故意)。将其拆分为单独的查询

@PeeHaa埽 我使用的查询是有效的,并在控制台中进行了测试。如果多个查询有效,您可能正在使用模拟的准备语句运行。感谢您的响应,我确实希望避免类似exec的查询。PDO实际上在一个prepare语句中接受多个查询,经过测试。