2013-06-01 104 views
0

數據庫架構,我無法創建一個MySQL數據庫架構,並通過PDO分配用戶權限,我找不到什麼毛病我的代碼:無法創建PDO

$db = $this->pdo->prepare('CREATE SCHEMA :dbName; 
          GRANT ALL ON :dbName.* TO :[email protected]`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

@PeeHaa埽我正在使用的查詢是有效的,並在控制檯中進行測試。 – user2443876

+0

如果有多個查詢工作,您可能正在運行模擬預處理語句。 – PeeHaa

回答

1
  • 參數(如:dbName)採用標量輸入,如字符串和數字。你不能將它們用於列名或表名;這些必須明確地輸入到查詢中。也就是說,CREATE SCHEMA 'test'將會失敗,但是CREATE SCHEMA test是您需要的。
  • PDO無法在單個語句(有意)中運行多個查詢。將其分解爲單獨的查詢。
+0

感謝您的迴應,我真的想避免類似exec的查詢。 PDO實際上確實在單個準備語句中接受多個查詢,經過測試。 – user2443876