首页 > 解决方案 > PHP PDO 不会为不存在的数据库生成错误

问题描述

我的问题:如果我给它一个服务器上不存在的数据库的名称,
为什么不显示错误消息?new PDO()

我的数据库服务器是CockroachDB v21.1.8,它支持大部分 PostgreSQL 的语法

当我收到此错误消息时,我正在努力改进我的网站的错误处理:

SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "recipes" does not exist

上述错误消息来自此查询:

$this->link->query("SELECT recipeid,name FROM recipes ORDER BY name")

即使错误消息是正确的,它也不是我所期望的消息。我期待一条消息说database not found或类似的东西,因为我告诉 pgsql 连接到一个不存在的数据库。

我的数据库连接代码:

try {
    $this->link = new PDO('pgsql:host='.$this->serverName.';port=26257;dbname='.$usedb.';sslmode=require;sslrootcert='.$rootcert.';sslkey='.$userkey.';sslcert='.$usercert, $this->userName, null, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (PDOException $e) {
    echo 'Caught PDOExcetion<br>';
    echo 'Error Message: '.$e->getMessage();
    echo '<br/>Error Code: '.$e->getCode();

    exit(1);
}

标签: phppostgresqlpdocockroachdb

解决方案


推荐阅读