0
<?php
try {
  $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
  $sql = $DBH->exec("
    CREATE TABLE `store_config` (
    store_name varchar(30),
    last_update date)
    ");
} catch (PDOException $e) {
  echo "Could not connect to database.";
  $DBH = null;
}
?>

PDOException はスローされません。おそらく SQL エラーがありますが、そのエラーを取得する方法がわかりません。phpMyAdmin でデータベースをチェックすると、テーブルが作成されません。私は何を間違えましたか?

読んでくれてありがとう。

編集: 同じSQLコードをphpMyAdminに直接実行すると、許可拒否エラーが発生しました...

1142 - テーブル 'store_config' のユーザー '$user'@'$my_ip' に対する CREATE コマンドが拒否されました

Web ホストの Web フォームを使用してユーザーを作成したときに、権限を付与するオプションがなく、このユーザーをデータベース所有者にするオプションしか与えられなかったため、混乱しています-それは私がしなければならないことですか?

編集:

ユーザー アカウントに「DBO アクセス」を与えたところ、現在は機能しています (テーブルが作成されています)。

コメントしてくれてありがとう。

4

2 に答える 2

1

これを試して。それはあなたが何が起こっているのかを教えてくれるあなたが探しているエラーをあなたに与えるはずです。

<?php
try {
  $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
  $sql = $DBH->exec("
    CREATE TABLE `store_config` (
    store_name varchar(30),
    last_update date)
    ") or die(print_r($DBH->errorInfo(), true));
} catch (PDOException $e) {
  echo "Could not connect to database.";
  $DBH = null;
}
?>
于 2012-04-11T21:28:44.120 に答える
0

コードを実行しているマシンからユーザーに作成権限を付与する方法を見つける必要があります。ユーザーはおそらくローカルホストからの権限しか持っていないので、サーバーにコードをアップロードしてそこで実行し、権限を得る必要があります。

于 2012-04-11T21:19:36.953 に答える