我有一个在opencart上运行的网站,它使用命令Mysqli connect连接到数据库,现在我面临的问题是,如果由于某些错误,它无法连接,或者假设我更改了数据库用户的密码,那么我的输出将显示一个致命错误,其中包括用于连接的密码。
我收到的错误
警告:mysqli::mysqli():(28000/1045):拒绝用户访问
'saledart_admin'@'localhost'(使用密码:YES)输入
/home2/saledart/public_html/system/database/mysqli.php第6行
致命错误:未捕获异常“error exception”,消息为“error:
无法拒绝用户访问数据库链接(1045)
'saledart_admin'@'localhost'(使用密码:是)'in
/home2/saledart/public_html/system/database/mysqli.php:9堆栈跟踪:>#0/home2/saledart/public_html/vqmod/vqcache/vq2-system_library_db.php(13):
DBMySQLi->\u构造('localhost','saledart\u admin','SqlPassword',
'saledart_db')#1/home2/saledart/public_html/index.php(44):
DB->\u construct('mysqli'、'localhost'、'saledart\u admin',
'SqlPassword','saledart'u db')\2{main}被抛出
/第9行home2/saledart/public_html/system/database/mysqli.php
如您所见,这样的错误显示了我的sql密码,我想知道是否有一种方法可以使我的密码永远不会由于这样的错误而被隐藏。
我希望我能说清楚。
当做
注:我可以解决这个错误,因为这是因为我已经更改了数据库用户的密码,但我的观点是,即使是旧密码也不应该如此容易地显示出来。
最佳答案
使用phptry 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;
}