PDO没有创建CREATE TABLE

时间:2013-03-19 15:58:36

标签: php sql pdo create-table

我对此很陌生,需要一些帮助。

我正在尝试将数组输入到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] => )

如果有必要,我很乐意提供更多代码或信息。我只是无法弄清楚为什么会这样,并且非常感谢任何输入,谢谢。

1 个答案:

答案 0 :(得分:0)

你需要

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

在两个查询之间,或使用CREATE TABLE中的完全限定名称:

CREATE TABLE IF NOT EXISTS $validdbname.webdata ( ...