1

私はこれにかなり慣れていないので、助けが必要です。

配列を PDO データベースに入力しようとしています。データベースは次のコードを使用して作成されます。

$createdb = $db->exec("CREATE DATABASE $validdbname;
CREATE USER '$user'@'localhost' IDENTIFIED BY '$password';
GRANT ALL ON `$validdbname` .* TO '$user'@'localhost';
FLUSH PRIVILEGES;")
or die(print_r($db->errorInfo(), true));
// Check for success
if ($createdb) 
{
    echo 'Database Created!<br /><br />';
}
else echo "Database not successfully created! <br /><br />";

これは正常に機能しますが、非常によく似たコードで作成されたデータベース内にテーブルを作成しようとすると、これは機能しません:

$createtable = $db->exec("CREATE TABLE IF NOT EXISTS webdata (
id INTEGER NOT NULL AUTO_INCREMENT,
data VARCHAR(200) NOT NULL,
PRIMARY KEY (id))")

or die(print_r($db->errorInfo(), true));

PHPMyAdmin をチェックして、テーブルが作成されているかどうかを確認しましたが、データベースは作成されていますが、テーブルは作成されていません。これは、次を示すエラーです。

Array ( [0] => 00000 [1] => [2] => )

必要に応じて、より多くのコードまたは情報を提供していただければ幸いです。なぜこれが起こっているのかわかりません。ご意見をいただければ幸いです。

4

1 に答える 1

0

必要がある

$db->exec('USE ' . $validdbname);

2 つのクエリの間で、または で完全修飾名を使用しますCREATE TABLE

CREATE TABLE IF NOT EXISTS $validdbname.webdata ( ...
于 2013-03-19T16:08:52.663 に答える