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);

在两个查询之间,或在CREATE TABLE:

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