2012-04-11 15 views
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でデータベースをチェックすると、テーブルが作成されません。私は何を間違えたのですか?なぜこのPHP/SQLはテーブルを作成しませんか?

読んでいただきありがとうございます。

EDIT: 私はphpMyAdminのに直接同じSQLコードを実行すると、それが許可拒否エラーを与えた...

1142 - テーブルのためのユーザー '$ユーザ' に拒否されたコマンドのCREATE @ '$のmy_ip' ' store_config '

WebホストWebフォームでユーザーを作成したときに、そのユーザーにデータベース所有者を許可するオプションが与えられていないので、私は混乱しています。

EDIT:

私は自分のユーザアカウント 'DBOアクセス' を与え、それが(表が作成された)動作するようになりました。

ご意見ありがとうございます。

+1

SQLは、MySQLに入れるだけで動作するため、接続していないか、dbnameがMySQL上の実際のDBの名前ではないか、そのユーザーにDB。 – thezboe

+0

@thezboe私の投稿の編集を参照してください - 私は今エラーがあります(許可が拒否されました) – Ozzy

答えて

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; 
} 
?> 
+0

+1、ありがとう。 @ NathanielFordは、エラーの更新された質問を参照してください – Ozzy

0

コードを実行しているマシンからユーザーに作成権限を与える方法を見つける必要があります。おそらくユーザはlocalhostからのアクセス権しか持っていないので、コードをサーバにアップロードしてそこで実行して許可を得なければなりません。

+0

実際には、おそらくそれを準備する必要はありません。ちょうど通常私がそれを行う方法。 – thezboe

+0

あなたの答えをありがとう。私はそれを試みたが、それはまだテーブルを作成しません。 '$ DBH-> errorInfo()'のために+1 – Ozzy

関連する問題