【问题标题】:Fatal error: Call to a member function num_rows() on boolean in C:\xamp\htdocs\project24\system\database\DB_driver.php on line 768致命错误:第 768 行 C:\xampp\htdocs\project24\system\database\DB_driver.php 中的布尔值调用成员函数 num_rows()
【发布时间】:2016-06-29 09:32:51
【问题描述】:

亲爱的,我在尝试通过迁移创建表时遇到错误。 我收到以下错误

Fatal error: Call to a member function num_rows() on boolean 
 in C:\xamp\htdocs\project24\system\database\DB_driver.php on line 768

我的代码是:

    if ($query->num_rows() > 0)
    {
        foreach ($query->result_array() as $row)
        {
            if (isset($row['TABLE_NAME']))
            {
                $retval[] = $row['TABLE_NAME'];
            }
            else
            {
                $retval[] = array_shift($row);
            }
        }
    }
    $this->data_cache['table_names'] = $retval;
    $ex=$this->data_cache['table_names'];
    return $ex;
}

第 768 行

请帮助我摆脱这个错误

【问题讨论】:

    标签: mysql migration fatal-error


    【解决方案1】:

    我假设 $query 是发送查询并获得响应的结果。我会用更合适的变量名来解释它:

    if($result = connection()->query($query)) $rs = mysqli_fetch_array($result);
    

    好的,此时您在 $rs 上有第一行,这里 $rs 是否为 void 无关紧要。请记住,如果您使用 CREATE 语句,mysql 引擎将返回 void (0 cols) 结果,因此 php 可以将其视为 true(如果已创建表)或 false(如果未创建),因此它是一个布尔值。如果您在那里进行选择,并且您想在循环中执行某些操作,您将按照以下方式进行操作:

    while ($rs != ''){
    
    //do something with $rs[index];
    
    $rs = mysqli_fetch_array($result);
    //to take next row
    }
    connection()-close();
    

    希望对您有所帮助。干杯!

    【讨论】:

      猜你喜欢
      • 2018-03-04
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多