在布尔值上调用成员函数fetch_row()

时间:2019-03-19 12:04:15

标签: php mysql mysqli migration

我想迁移旧的f.a.q脚本以使用mysqli语句。该脚本正在尝试从数据库获取多行结果以填充模板页面。现在抛出给定的错误,我不知道为什么。我看不到该错误,因为我无法指出将在哪里生成错误的布尔返回值。

引发的错误是:

Fatal error: Uncaught Error: Call to a member function fetch_row() on boolean in /var/www/web3/html/faq/admin/lib/display.php:174 Stack trace: #0 /var/www/web3/html/faq/index.php(147): faq_display::topQuestions() #1 {main} thrown in /var/www/web3/html/faq/admin/lib/display.php on line 174

受影响的班级

display.php

static public function topQuestions() {
    $tops  = faq_data::query('SELECT question, categoryid, questionid, count FROM :questions_table ORDER BY `count` DESC LIMIT 5');
    $q = faq_data::multirow($tops);
    $resarr = array();
    $i = 0;
    while( $queryContent = $q->fetch_row( ) ) {
        $resarr[$i]['question'] = $queryContent[0];
        $resarr[$i]['categoryid'] = $queryContent[1];
        $resarr[$i]['questionid'] = $queryContent[2];
        $resarr[$i]['count'] = $queryContent[3];
        $i++;
    }
    return $resarr;
}

static public function topCategories() {
    $tops  = faq_data::query('SELECT name, categoryid, count FROM :categories_table ORDER BY `count` DESC LIMIT 5');
    $q = faq_data::multirow($tops);
    $resarr = array();
    $i = 0;
    while( $queryContent = $q->fetch_row(  ) ) {
        $resarr[$i]['name'] = $queryContent[0];
        $resarr[$i]['categoryid'] = $queryContent[1];
        $resarr[$i]['count'] = $queryContent[2];
        $i++;
    }
    return $resarr;
}

data.php:

    $queryResult = self::$connection->query($query);
    if(!$queryResult) {
        self::logError();
        return false;
    }
    return $queryResult;
}

static public function row($query) {
    $result = false;

    if(is_string($query)) {
        $result = self::query($query);
    } else if (is_resource($query)) {
        $result = $query;
    }

    if(!$result) {
        return false;
    }

    return $result->fetch_assoc();
}

static public function multirow($query) {
    $result = false;

    if(is_string($query)) {

  $result = self::query($query);

  $rows = array();
  while($row = $result->fetch_assoc()) {
      $rows[] = $row;
  }


        $result = $rows;
    } else if (is_resource($query)) {
        $result = $query;
  $rows = array();
  while($row = $result) {
      $rows[] = $row;
  }

  $result = $rows;
}

    if(!$result) {
        return false;
    }

    return $result;
}

您能提供帮助吗?

我看到有类似的问题,但这不是重复的。我正在为该脚本搜索特定的解决方案。

0 个答案:

没有答案