0

マルチテナンシーが適さないアプリケーションを開発しています。したがって、私の計画は、クライアント アカウントごとに異なる MySQL データベースとユーザーを作成することです。問題が発生しています。コードの何が問題なのかがわかれば、それは素晴らしいことです。エラーは発生していませんが、データベース/ユーザーが追加されていません

$dsn = "mysql:host=localhost";
$pdo = new PDO($dsn,"REMOVED","REMOVED"); // I removed the login.

$username = 'testing';
$password = 'password';
$dbname   = 'test_table'; 

//Creation of user
$STH = $pdo->prepare("CREATE USER `:username` @'%' IDENTIFIED BY `:password`;");
$STH->execute(array(':username' => $username, ':password' => $password));

//Creation of database "new_db"
$STH = $pdo->prepare("CREATE DATABASE `:dbname`;");
$STH->execute(array(':dbname' => $dbname));

//Adding all privileges on our newly created database
 $STH = $pdo->prepare("GRANT ALL PRIVILEGES on `:dbname`.* TO `:username`@'%';");
 $STH->execute(array(':dbname' => $dbname,':username' => $username));
4

1 に答える 1

1

あなたが cPanel を使用していると言っていることに気付きました。phpMyAdmin をチェックして、ユーザーを作成できるかどうかを確認してください。タブが使用可能な場合、コードは期待どおりに動作するはずです。表示されない場合は、phpMyAdmin の config.inc.php ファイルで設定オプションを確認できます。問題が cPanel にあるのか、phpMyAdmin にあるのかはわかりません。コードに関しては、Windows で実行されている XAMPP で 100% 動作するため、問題は別の場所にあります。明確な回答ができず申し訳ありません!

于 2013-01-06T01:35:09.287 に答える