是的,这已经被问过。其他答案没有帮助。mysql:使用php,mysqli_connect()失败时如何捕获错误?
我是mysql和php的新手。 我正在参加大学课程,在我面前有一个html-php-mysql项目。
我一直在编码30年,并使用关系数据库20年。所以我有一些经验。是的,这是作业,但我已经写了一些不起作用的简单代码。
我觉得核心问题是班级没有教科书,我们被指示“在网上找到你需要的所有帮助”。 由于有很多方法可以使用php皮肤猫,找到与我的教师相匹配的示例一直是一个挑战。查找不推荐的mysql_ *示例会使搜索更加困难。大多数代码示例假设查询将始终有效!和db连接。这是最后一点。我的PHP处理所有其他错误,我可以扔在它。
这段代码是frankenstein,但我没有得到这个工作。忍受我和代码。
毫无疑问,制作此生产代码需要做很多事情,但这不是目标。我想获得玩具html文件和php脚本连接到一个玩具mysql数据库,并产生一个近乎平凡的结果。所有这些考虑都不是密切相关的。
我强制连接失败,所以我的代码可以优雅地告诉用户系统已关闭,并且我可以记录该错误。
由于“rootx”无效导致php错误。
"PHP Warning: mysqli_connect(): (HY000/1045): Access denied for user 'rootx'@'localhost'"
但是错误没有被捕获,“catch”被跳过并且“finally”子句运行。
mysqli_report(MYSQLI_REPORT_STRICT);
被添加,因为这条线修复了这个相同的问题。它没有帮助。
可能是如何配置wamp?我所做的只是在安装程序的指导下安装在这个Windows 10机器上。
mysqli_report(MYSQLI_REPORT_STRICT);
try {
$conn = mysqli_connect('localhost', 'rootx', '', 'csc443');
// server, username, pw, dbname
}
} catch(Exception $e) {
log_action("dbconnectfail " . $username . " | " . $e->getCode() . " | " . $e->getMessage());
header('Location: 500.php');
return;
} finally {
log_action("dbconnect localhost::csc443");
}
发生错误时连接将返回false。检查值是否为假 –
我强制连接失败。我希望连接失败,以便测试检测登录失败的代码。 我的问题是编写可以优雅地处理这个错误的代码。 我以为try-catch-finally是一个不错的选择,因为mysql会抛出一个记录错误! –