0

我无法创建 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\' 附近使用的正确语法;GRANT ALL ON \'test\'.* TO \'test\' at line 1'

4

1 回答 1

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