PDO连接不显示错误

时间:2014-06-24 00:40:58

标签: php mysql pdo

所以我正在尝试使用PDO连接到数据库。我今天早些时候能够做到这一点,但现在我不确定它是否有效,因为当我输入错误的凭据时,我会收到错误。这是我的代码

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$host = "localhost";
$pass = "root";
$dbname = "users";
$user = "root";

try{
    $con->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
    $con = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

 }
 catch(PDOException $e){
    echo $->getMessage();
 }

当我运行任何其他脚本时,它们工作正常。有人看到任何错误?这也是我在开发工具中看到的。此与上面的代码一起发生。

enter image description here

2 个答案:

答案 0 :(得分:3)

您的默认设置display_errors为0.并且您有致命错误。因此,您的代码尚未执行且display_errors未更改,因此您未收到错误消息。您可以更改ini设置以显示错误。

甚至更好 - 使用带有错误突出显示的ide。

您应该重写代码。

try{
    $con = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); // change order
    $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); // change to exception, remove pdo->
 }
 catch(PDOException $e){
    echo $e->getMessage(); // <- fixed
 }

答案 1 :(得分:0)

如果你想抛出exceptions,你需要启用它来告诉它。

$con->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

此外,请尝试设置error_reporting(-1)以启用它们。

catch(PDOException $e){
    echo $e->getMessage();
}