【问题标题】:MySQLI Connect Error Shows PasswordMySQLI 连接错误显示密码
【发布时间】:2015-04-19 21:55:17
【问题描述】:

我有一个在 opencart 上运行的网站,它使用命令 Mysqli connect 连接到数据库,现在我面临的问题是,如果由于某些错误而无法连接,或者说我更改了我的数据库用户的密码输出显示一个致命错误,其中还包括用于连接的密码。

我收到错误

警告:mysqli::mysqli(): (28000/1045): 拒绝用户访问 'saledart_admin'@'localhost'(使用密码:YES) /home2/saledart/public_html/system/database/mysqli.php 在第 6 行

致命错误:未捕获的异常“ErrorException”和消息“错误: 无法建立数据库链接 (1045) 拒绝用户访问 'saledart_admin'@'localhost'(使用密码:YES)' /home2/saledart/public_html/system/database/mysqli.php:9 堆栈跟踪:> #0 /home2/saledart/public_html/vqmod/vqcache/vq2-system_library_db.php(13): DBMySQLi->__construct('localhost', 'saledart_admin', 'SqlPassword', 'saledart_db') #1 /home2/saledart/public_html/index.php(44): DB->__construct('mysqli', 'localhost', 'saledart_admin', 'SqlPassword', 'saledart_db') #2 {main} 抛出 /home2/saledart/public_html/system/database/mysqli.php 在第 9 行

你可以看到这样的错误显示我的 sql 密码,我想知道我的密码是否因为这样的错误而不会被显示。

我希望我能说清楚。

问候

PS:我可以解决这个错误,因为我已经更改了数据库用户密码,但我的观点是,即使是旧密码也不应该这么容易显示。

【问题讨论】:

    标签: php mysql sql mysqli opencart


    【解决方案1】:

    使用 php try catch ,其异常处理用于在发生指定错误时改变代码执行的正常流程。

    try {
        $con = mysqli_connect("localhost","my_user","my_password","my_db");
    
        if(!$conn) {
            throw new Exception('Failed');
        }
    } catch(Exception $e) {
        echo 'Server error. Please try again some time.';
        die;
    
    }
    

    【讨论】:

    • 这应该已经解决了问题,但你知道如何在 Opencart 中实现它吗?
    • 这是一个很好的完美答案,但请通过解释(至少简而言之)什么是try-catch 块以及它如何在例外情况下使用,以便任何新的主题可以立即理解它,而不是不假思索地复制粘贴。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-11-29
    • 2012-03-09
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 2018-05-08
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多