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

时间:2013-06-01 19:15:02

标签: 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, 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服务器版本对应的手册,以便在\'\'test \'附近使用正确的语法;全部打开''测试'。*在第1行''测试''

1 个答案:

答案 0 :(得分:1)

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