Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取类中的数据库连接错误_Php_Mysql - Fatal编程技术网

Php 获取类中的数据库连接错误

Php 获取类中的数据库连接错误,php,mysql,Php,Mysql,我没有意识到使用mysqli有一种面向对象的方法,所以我构建了一个名为DB的类。在_构造期间,它采用主机名、用户名、密码和数据库名。给定以下代码: $myDB = new DB("localhost", "user", "password", "database"); $myDBConnect = $myDB->connect(); if(!$myDBConnect) { echo "<strong>The following error has occurred:

我没有意识到使用mysqli有一种面向对象的方法,所以我构建了一个名为DB的类。在_构造期间,它采用主机名、用户名、密码和数据库名。给定以下代码:

$myDB = new DB("localhost", "user", "password", "database");
$myDBConnect = $myDB->connect();

if(!$myDBConnect) {
    echo "<strong>The following error has occurred: " . $myDB->getError();
}
我没有得到任何错误细节。我尝试添加或删除mysqli_错误;在connect方法中,但它总是只输出$myDB在其中实例化的文件中的文本。我还尝试了错误报告代码的变体,包括在mysqli\u connect\u errno中没有参数,以及使用$this->dbError=mysqli\u connect\u error(带或不带连接参数)

这是否不必要地使使用mysqli的OO方式复杂化了?还是我缺少了一些简单的东西,可以让我继续使用我已有的代码? 提前感谢您的时间。

如果不可变

       if(!$myDBConnect) {
      ^--remove variable sign here
编辑:

您的连接应该是

    $myDB = new mysqli("localhost", "user", "password", "database");
if不是可变的

       if(!$myDBConnect) {
      ^--remove variable sign here
编辑:

您的连接应该是

    $myDB = new mysqli("localhost", "user", "password", "database");

也许您忘记了connect方法中的return true语句


您还应该使用PDO。

也许您忘记了connect方法中的return true语句



您还应该使用PDO。

您的连接函数在失败时返回false,在成功时返回nothing,因此它将始终在if中失败。尝试添加returntrue;在该函数结束时。

您的连接函数在失败时返回false,在成功时返回nothing,因此它将始终在if中失败。尝试添加returntrue;在该函数的末尾。

为什么要PDO?仅仅是因为,还是有更多的原因?我的理解是,如果查询成功,则返回数据,否则返回false。我不认为我必须返回true,因为我实际上希望在成功调用后变量中包含查询内容。方法connect仅在失败时返回false。否则,将返回null,因为每个方法的默认返回值都为null。所以你的if语句永远是正确的。我认为这是一篇好文章,为什么你应该使用PDO:我在之前的评论中错误地理解了我的步骤——你是对的;我必须用自己的方法返回true,以便让if语句知道连接尝试是如何进行的。我在想查询响应。为什么是PDO?仅仅是因为,还是有更多的原因?我的理解是,如果查询成功,则返回数据,否则返回false。我不认为我必须返回true,因为我实际上希望在成功调用后变量中包含查询内容。方法connect仅在失败时返回false。否则,将返回null,因为每个方法的默认返回值都为null。所以你的if语句永远是正确的。我认为这是一篇好文章,为什么你应该使用PDO:我在之前的评论中错误地理解了我的步骤——你是对的;我必须用自己的方法返回true,以便让if语句知道连接尝试是如何进行的。我正在考虑查询响应。抱歉,我一定是错误地添加了它-它不在代码中。这是有效的。我的班也在早些时候上课,我不知道发生了什么事。哦,也许这有点多余。我将继续阅读,但如果这是解决问题的方法,我会将其标记为正确谢谢谢谢你的帮助。我之所以选择这样的答案,是因为它实际上解决了我当前逻辑的问题——我已经编写了一个数据库类,不想用mysqli对象替换所有现有代码,即使它有点多余。对不起,我一定是错误地添加了它——它不在代码中。这是可行的。我的班也在早些时候上课,我不知道发生了什么事。哦,也许这有点多余。我将继续阅读,但如果这是解决问题的方法,我会将其标记为正确谢谢谢谢你的帮助。我之所以选择这样的答案,是因为它实际上解决了我当前逻辑的问题——我已经编写了一个数据库类,不想用mysqli对象替换所有现有代码,即使它有点多余。我已经按照@echo_Me删除了if语句前面错误的$。它没有出现在实际的代码中,只是我的帖子。我应该补充一点,没有生成错误日志文件。。。这一定是我试图获取错误信息的方式。我已经按照@echo_Me删除了if语句前面错误的$。它没有出现在实际的代码中,只是我的帖子。我应该补充一点,没有生成错误日志文件。。。这一定是我试图获取错误信息的方式。谢谢。实际上,我刚刚删除了这个变量,并单独调用了connect方法。我想要对查询方法结果进行真/假测试的是未显示的查询方法结果。我想我的问题是脑筋急转弯。需要后退几个小时。谢谢。实际上,我刚刚删除了这个变量,并单独调用了connect方法。我想要对查询方法结果进行真/假测试的是未显示的查询方法结果。我的问题是脑残,我想 nk。需要后退几个小时。