我的函数在返回true时返回false

时间:2014-08-21 02:49:15

标签: php mysql

我的函数在返回true时总是返回false,我无法找到原因

public function isReselling($key)
{
    if ($this->validateKey($key)) {
        return false;
    }
    $apis = mysql_connect("mysql.hostinger.fr", "u770656121_uapi", "testpass") or die(mysql_error());
    mysql_select_db("u770656121_api", $apis);
    $sql = "
    SELECT * FROM api_id
    ";
    $result = mysql_query($sql, $apis);
    while($row = mysql_fetch_array($result)) {
        $blacklisttho = $row['Banned'];
        if ($blacklisttho == 1) {
            return true;
        }
    }
    return false;
} 

2 个答案:

答案 0 :(得分:1)

嗯,你需要确定'返回'的确切位置,然后根据它进行调查:

public function isReselling($key)
{
    if ($this->validateKey($key)) {

       die('validate fails');

        return false;
    }
    $apis = mysql_connect("mysql.hostinger.fr", "u770656121_uapi", "testpass") or die(mysql_error());
    mysql_select_db("u770656121_api", $apis);
    $sql = "
    SELECT * FROM api_id
    ";
    $result = mysql_query($sql, $apis);
    while($row = mysql_fetch_array($result)) {
        $blacklisttho = $row['Banned'];
        if ($blacklisttho == 1) {
            return true;
        }
    }

    die('no results.');

    return false;
}

和顺便说一下,你不希望在代码周围有多个'返回',这是不好的做法。

答案 1 :(得分:0)

我会将您的代码更改为:

public function isReselling($key)
{
    $retValue = false;

    if ($this->validateKey($key) === false) {
        $apis = mysql_connect("mysql.hostinger.fr", "u770656121_uapi", "testpass") or die(mysql_error());
        mysql_select_db("u770656121_api", $apis);
        $sql = "SELECT * FROM api_id";
        $result = mysql_query($sql, $apis);
        while($row = mysql_fetch_array($result)) {
            if ($row['Banned'] == 1) {
                $retValue = true;
                break;
            }
        }
    }
    return $retValue;
}