我无法创建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行''测试''
答案 0 :(得分:1)
:dbName
)采用标量输入,例如字符串和数字。您不能将它们用于列名或表名;那些必须明确地输入到查询中。也就是说,CREATE SCHEMA 'test'
会失败,但CREATE SCHEMA test
就是您所需要的。