有没有办法在PHP中捕获MySQL和数据库错误?

ASD*_*ASD 9 php mysql error-handling mysql-error-1045

有时我收到数据库错误

警告:mysql_connect()[function.mysql-connect]:用户'test'@'101.190.193.83'拒绝访问(使用密码:YES)

无法连接:访问被拒绝用户'test'@'101.190.193.83'(使用密码:是)"

但真正的密码没有变化.

有没有办法在日志文件中捕获此错误并在屏幕上显示一些不错的消息,如"服务器错误.请再试一次."

Gér*_*oës 10

如果您不希望PHP显示警告,则必须使用"@"运算符

$connect = @mysql_connect(HOST, USER, PASS);//won't display the warning if any.
if (!$connect) { echo 'Server error. Please try again sometime. CON'; }
Run Code Online (Sandbox Code Playgroud)

您还可以考虑在生产中的文件中将 display_errors设置为0php.ini

您也可以考虑将PDO连接到MySQL,它使用异常作为报告错误的默认值,

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Could not connect : ' . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)


小智 3

<?php
    $connect = mysql_connect(HOST, USER, PASS);
    if(!$connect) { echo 'Server error. Please try again sometime. CON'; }

    $select_db = mysql_select_db(DATABASE);
    if(!$select_db) { echo 'Server error. Please try again sometime. DB'; }
?>
Run Code Online (Sandbox Code Playgroud)

  • 我帮你修好了。要获得代码格式,请在代码前添加 4 个空格(或 1 个制表符)。您可以通过选择文本并按 CTRL+K 轻松完成此操作。 (3认同)