我更改了localhost config.php文件中的用户名和密码,因为我在本地phpmyadmin上使用了不同的登录信息。 除此之外,它们是完全相同的文件。
我的config.php文件:
<?php
$dbh = new PDO(
'mysql:host=localhost;dbname=mydatabase;charset=utf8',
'root',
'pw123',
array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT => false
)
);
?>
有人可以解释可能导致错误消息的原因吗?
这对我有用:
我在index.php中的第一行:
// Check connection
if ($dbh->connect_error) {
die("Connection failed: " . $dbh->connect_error);
}
include('header.php');
我的header.php中的前两行:
error_reporting( error_reporting() & ~E_NOTICE );
ini_set('display_errors', true);
解决方案: 当我将这两行复制到index.php脚本中时,错误消息消失了。 如果有人知道原因,请向我们解释。
答案 0 :(得分:1)
未定义的属性:PDO :: $ connect_error
如果您查看manual,则会发现PDO实例根本没有公共属性。与mysqli不同,PDO将始终为连接错误抛出异常。
tl; dr - 完全删除该条件并且不要隐藏错误消息