首页 > 解决方案 > 捕获后如何访问 PDOException

问题描述

在下面的代码中,“$e”得到“getMessage()”。我知道我可以使用“catch {}”将其打印到屏幕上或将内容存储在变量中以备后用,但如果我不想这样做怎么办?我以后如何访问它?我看到有“getPrevious()”,但是我以后如何从另一个函数访问它,或者我可以吗?:

$servername = "localhost";
$username = "username";
$password = "password";

try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully"; 
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}

我已经尝试过以下类似的方法来查看是否可以访问信息,但我无法获得正确的语法?:

function ShowLater(){
    // Cant figure out how to access the info :(
    echo PDO::PDOExeption,$e->getMessage();
    echo PDO::PDOExeption,$e->getPrevious();
}

ShowLater();

基本上,我如何访问将显示的内容

echo "Connection failed: " . $e->getMessage();

稍后在“catch {}”之外

我会回显什么变量?

标签: phppdo

解决方案


可以在 $conn 变量中找到连接,当 try{} 块中出现错误时 PHP 会停止代码执行,然后跳转到 catch{} 块,这意味着您可以通过打印来报告 catch 块中发生的事情$e->getMessage() 中的错误描述


推荐阅读