无法使用PDO连接到数据库

时间:2014-05-07 09:05:17

标签: php pdo

我已获得以下代码:

try {
    $db = new PDO('mysql:host=127.0.0.1;db=example', 'root', '');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $db->query('SELECT * FROM posts');


} catch (PDOException $e) {

    echo $db->errorCode();
    var_dump($db->errorInfo());

}

我收到以下错误:

3D000array(3) { [0]=> string(5) "3D000" [1]=> int(1046) [2]=> string(20) "No database selected" }

但是,只有在我加入$stmt = $db->query('SELECT * FROM posts');

时才会发生这种情况

这是我第一次使用PDO,有谁知道为什么这不起作用?存在数据库和表。

2 个答案:

答案 0 :(得分:4)

你有:

db=example

你需要:

dbname=example

遗憾的是,如果您输错了DSN参数,则无法获取任何类型的错误消息或通知。

可用参数记录在PDO_MYSQL DSN

答案 1 :(得分:0)

dname而不仅仅是db

try {
    $db = new PDO('mysql:host=127.0.0.1;dbname=example', 'root', '');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $db->query('SELECT * FROM posts');


} catch (PDOException $e) {

    echo $db->errorCode();
    var_dump($db->errorInfo());

}

http://www.php.net/manual/fr/book.pdo.php