php - 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);
}
解决方案
推荐阅读
- c++ - 需要帮助使用指针打印二维数组
- mathjax - 为没有分隔符的自定义标签执行 MathJax
- sql - 带有索引视图的 SQL Merge 语句
- reactjs - 带有空字符串的反应钩子'useState()'在输入字段中显示一些默认值
- python - 根据相同的键删除 pandas 中的行
- pointers - 如何检查记录指针在 Object Pascal / Delphi 中是否没有值?
- kubernetes - Helm 子图名称和 URL 变量配置
- matlab - 你能解释一下这行在 Matlab 中的作用吗
- python - Keras 拟合和数据生成器返回“检查输入时出错:预期 input_1 具有 3 个维度,但得到的数组具有形状 (None, 1)”
- python-3.x - 使用更短且正确的版本改进我的长 python 代码的建议