Php 使用PDO创建表-不工作

Php 使用PDO创建表-不工作,php,mysql,pdo,Php,Mysql,Pdo,我知道这方面有一些线索,但我已经研究过了,还没有找到解决方案 我遇到的问题是,当我执行代码以使用PHP的PDO对象创建表时,什么都没有发生。我没有得到一个错误,但我也没有得到一个表 这是我的密码: $pdo = new pdo('mysql:localhost;ijdb','root',''); try { $sql = 'CREATE TABLE joke ( id INT NOT NULL AUTO_INCREMENT PRIMARY K

我知道这方面有一些线索,但我已经研究过了,还没有找到解决方案

我遇到的问题是,当我执行代码以使用PHP的PDO对象创建表时,什么都没有发生。我没有得到一个错误,但我也没有得到一个表

这是我的密码:

    $pdo = new pdo('mysql:localhost;ijdb','root','');
try {  
    $sql = 'CREATE TABLE joke 
    (
            id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
            joketext TEXT,
            jokedate DATE NOT NULL
    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB'; 
    $pdo->exec($sql);
    $sql = 'INSERT INTO joke values
    (
        (1,"jokes","2014-04-22")
    )';
    $pdo->exec($sql);
 } 
catch (PDOException $e) {  $output = 'Error creating joke table: ' . $e->getMessage();
exit(); }
正如我所说,什么都没有发生,表没有创建


任何帮助都将不胜感激!如果这是一篇重复的文章,请给我指出正确的方向,我将删除这篇文章。

如果你想让这篇文章生效,请执行以下操作:

旁注:这将创建一个新的数据条目,该条目与
2014-04-22
相同

如果不想继续添加相同的查询,请使用
. 和/或将列设置为
唯一

注:由于
id
列是
自动增量
,因此
1
应该从
INSERT
中省略

try {

 $pdo = new pdo('mysql:host=localhost;dbname=your_db', 'username', 'password_if_any');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "CREATE TABLE IF NOT EXISTS joke
    (
            id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
            joketext TEXT,
            jokedate DATE NOT NULL

                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

    INSERT INTO joke (joketext, jokedate) values ('jokes','2014-04-22')";

    $pdo->exec($sql);

 } 
catch (PDOException $e) {  

$output = 'Error creating joke table: ' . $e->getMessage();

echo $output;
exit(); 
}

如果要使此功能正常工作,请执行以下操作:

旁注:这将创建一个新的数据条目,该条目与
2014-04-22
相同

如果不想继续添加相同的查询,请使用
. 和/或将列设置为
唯一

注:由于
id
列是
自动增量
,因此
1
应该从
INSERT
中省略

try {

 $pdo = new pdo('mysql:host=localhost;dbname=your_db', 'username', 'password_if_any');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "CREATE TABLE IF NOT EXISTS joke
    (
            id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
            joketext TEXT,
            jokedate DATE NOT NULL

                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

    INSERT INTO joke (joketext, jokedate) values ('jokes','2014-04-22')";

    $pdo->exec($sql);

 } 
catch (PDOException $e) {  

$output = 'Error creating joke table: ' . $e->getMessage();

echo $output;
exit(); 
}

如果要使此功能正常工作,请执行以下操作:

旁注:这将创建一个新的数据条目,该条目与
2014-04-22
相同

如果不想继续添加相同的查询,请使用
. 和/或将列设置为
唯一

注:由于
id
列是
自动增量
,因此
1
应该从
INSERT
中省略

try {

 $pdo = new pdo('mysql:host=localhost;dbname=your_db', 'username', 'password_if_any');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "CREATE TABLE IF NOT EXISTS joke
    (
            id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
            joketext TEXT,
            jokedate DATE NOT NULL

                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

    INSERT INTO joke (joketext, jokedate) values ('jokes','2014-04-22')";

    $pdo->exec($sql);

 } 
catch (PDOException $e) {  

$output = 'Error creating joke table: ' . $e->getMessage();

echo $output;
exit(); 
}

如果要使此功能正常工作,请执行以下操作:

旁注:这将创建一个新的数据条目,该条目与
2014-04-22
相同

如果不想继续添加相同的查询,请使用
. 和/或将列设置为
唯一

注:由于
id
列是
自动增量
,因此
1
应该从
INSERT
中省略

try {

 $pdo = new pdo('mysql:host=localhost;dbname=your_db', 'username', 'password_if_any');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "CREATE TABLE IF NOT EXISTS joke
    (
            id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
            joketext TEXT,
            jokedate DATE NOT NULL

                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

    INSERT INTO joke (joketext, jokedate) values ('jokes','2014-04-22')";

    $pdo->exec($sql);

 } 
catch (PDOException $e) {  

$output = 'Error creating joke table: ' . $e->getMessage();

echo $output;
exit(); 
}

$pdo->setAttribute(\pdo::ATTR\u ERRMODE,\pdo::ERRMODE\u异常)您的连接字符串完全错误。它应该看起来像mysql:host=localhost;dbname=ijdb'
您需要确保已打开PHP的错误报告,因为初始的
新PDO
将在尝试/捕获之前引发异常<代码>错误报告(E_全部);ini设置(“显示错误”,1)总是在开发代码时。然后按照@GhostGambler的建议启用PDO对象上的所有异常。^^通常,当需要输出时,PHP没有输出(甚至错误消息)是未报告的致命错误的强烈指示器。并将
新PDO
放入try/catch块中,如这里的示例所示:
$PDO->setAttribute(\PDO::ATTR_ERRMODE,\PDO::ERRMODE_EXCEPTION)
您的连接字符串完全错误。它应该看起来像是
'mysql:host=localhost;dbname=ijdb'
您需要确保已打开PHP的错误报告,因为初始的
新PDO
会在尝试/捕获之前抛出异常。
错误报告(E\u all);ini\u设置('display_errors',1);
总是在开发代码时进行。然后按照@GhostGambler的建议启用PDO对象上的所有异常。^^一般来说,当需要输出时,PHP不会输出(甚至错误消息)是未报告的致命错误的强烈指示器。并将
新PDO
放入try/catch块中,如以下示例所示:
$PDO->setAttribute(\PDO::ATTR\u ERRMODE,\PDO::ERRMODE\u EXCEPTION);
您的连接字符串完全错误。它应该看起来像“mysql:host=localhost;dbname=ijdb”
您需要确保已打开PHP的错误报告,因为初始的
新PDO
在尝试/捕获之前会抛出异常。
错误报告(E_all);ini_集('display_errors',1)
始终在开发代码时。然后按照@GhostGambler的建议启用PDO对象上的所有异常。^^^通常,当需要输出时,PHP不会输出(甚至错误消息)是未报告的致命错误的强烈指示器。并将
新PDO
放入try/catch块中,如以下示例所示:
$PDO->setAttribute(\PDO::ATTR\u ERRMODE,\PDO::ERRMODE\u EXCEPTION);
您的连接字符串完全错误。它应该看起来像“mysql:host=localhost;dbname=ijdb”
您需要确保已打开PHP的错误报告,因为初始的
新PDO
在尝试/捕获之前会抛出异常。
错误报告(E_all);ini_集('display_errors',1)
始终在开发代码时。然后按照@GhostGambler的建议启用PDO对象上的所有异常。^^一般来说,当需要输出时,PHP没有输出(甚至错误消息)是未报告的致命错误的强烈指示。并将
新PDO
放入try/catch块中,如以下示例所示: