编程语言
首页 > 编程语言> > PHP PDO错误消息作为要在电子邮件中发送的变量

PHP PDO错误消息作为要在电子邮件中发送的变量

作者:互联网

PHP中从MySQL切换到PDO.在过去,当一个查询被运行并且由于某种原因没有被执行时,我能够向自己发送一封包含mysql_error()消息的电子邮件,如下所示:

$query = "SELECT dogs FROM animals";
$res = mysql_query($query);

if (!$res) {
    $error = "Error Message: " . mysql_error();
    mail("my@email.com","Database Error",$error);
}

从那时起,当网站上的数据库出现问题时,我会被emil警告.

我的PDO设置如下:

setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

我有一个尝试catch在PDO连接本身,但我想得到准备和执行的错误消息,因为它们发生如下:

$query = "SELECT cats FROM animals";
$sql = $pdo->prepare($query);

if (!$sql->execute()) {
  $error = "Error Message: " . (pdo error message here);
  mail("my@email.com","Database Error",$error);
}

有关如何在电子邮件主题中分配PDO错误消息的任何想法?如果准备失败使用errorInfo()但是执行错误(例如数组的无效参数计数),我能够得到一条逻辑错误消息,我似乎无法收到错误消息.

感谢您的帮助.

解决方法:

使用try / catch

try {
    $sql->execute();
} catch (PDOException $e) {
    $e->getMessage(); // This function returns the error message
}

标签:php,mysql,pdo,error-handling,error-reporting
来源: https://codeday.me/bug/20190529/1179078.html