【问题标题】:error on mysqli::connect_errnomysqli::connect_errno 上的错误
【发布时间】:2014-02-14 21:22:07
【问题描述】:

我正在尝试开始使用 mysqli 和 OOP,但效果不佳。我无法让我的 mysqli 方法从简单的 connect_errno 方法开始工作。

谁能帮帮我?

似乎已建立与数据库的连接,因为我尝试使用其他密码(拒绝访问)。使用正确的密码,我收到以下错误:

致命错误:调用未定义的方法 mysqli::connect_errno() in C:\xampp2\htdocs\badeendenrace\db\db.php 在第 7 行

<?php
    $dbhost='localhost';
    $dbuser='Tjerk';
    $dbdata='badeendenrace';
    $dbpw='123test';
    $db = new mysqli($dbhost,$dbuser,$dbpw,$dbdata);
    if ($db->connect_errno())
    {
        echo "Connection failed: ".$db->connect_error()."\n";
        exit();
    }
?>

我正在使用最新版本的 Xampp(今天重新安装)和 PHP 版本 5.5.6

【问题讨论】:

标签: php mysqli


【解决方案1】:

您似乎将面向对象的功能与过程混淆了。你提到了 OOP,所以我假设你想要 OOP 版本。

$db = new mysqli($dbhost,$dbuser,$dbpw,$dbdata);
if ($db->connect_errno) //no parenthesis
{
    echo "Connection failed: ".$db->connect_error."\n"; //no parenthesis
    exit();
}

程序性

$db = new mysqli($dbhost,$dbuser,$dbpw,$dbdata);
if (!$db)
{
    echo "Connection failed: ".mysqli_connect_error(); //parenthesis
    exit();
}

【讨论】:

    【解决方案2】:

    正如 Rocket Hazmat 所说,connect_errno 不是函数。与connect_error 相同。因此,只需在代码中去掉两者之后的圆括号即可。

    if ($db->connect_errno)
    {
        echo "Connection failed: ".$db->connect_error."\n";
        exit();
    }
    

    【讨论】:

    • @AlexKey:查看示例 Rocket Hazmat 链接并查看此:connect_error。文档说明 connect_errno:“返回上次连接调用的错误代码” 和 connect_error:“返回上次连接错误的字符串描述”
    • 我明白这一点,但为了获得更好的答案质量,最好包括解释为什么他应该删除括号。
    猜你喜欢
    • 2015-06-04
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2019-07-29
    • 1970-01-01
    • 2011-02-25
    相关资源
    最近更新 更多