所以我正在尝试使用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();
}
当我运行任何其他脚本时,它们工作正常。有人看到任何错误?这也是我在开发工具中看到的。此仅与上面的代码一起发生。
答案 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();
}