PHP致命错误:调用未定义的方法mysqli :: mysqli_fetch_all()

时间:2014-01-20 22:32:13

标签: php mysqli

希望有人可以帮助我,我有以下错误,看了网上并尝试了一些东西,但似乎无法搞清楚,错误:

  

致命错误:在第38行的C:\ xampp \ htdocs \ cyberglide \ core-class.php中调用未定义的方法mysqli :: mysqli_fetch_all()

继承我的代码:

<?php

class Core {

function db_connect() {
    global $db_username;
    global $db_password;
    global $db_host;
    global $db_database;

    static $conn;

    $conn = new mysqli($db_host, $db_username, $db_password, $db_database);

    if ($conn->connect_error) {
        return '<h1>'."Opps there seems to be a problem!".'</h1>'.'<p>'."Your Config file is not setup correctly.".'</p>';
    }
    return $conn;
}

function db_content() {
    //this requires a get, update and delete sections, before its complete

    $conn = $this->db_connect();

    if(mysqli_connect_errno()){
        echo mysqli_connect_error();
}
$query = "SELECT * FROM content";

// Escape Query
$query = $conn->real_escape_string($query);

// Execute Query
if($result = $conn->query($query)){

        // Cycle through results
        while($row = $conn->mysqli_fetch_all()){
            //echo $row->column;
           }
       }
   }
}

$core = new Core();

?>

我正在尝试创建一个db_connect函数,我希望能够在需要数据库连接的网站上的任何地方调用,我试图在同一个类中的函数上调用该函数,我希望它能够抓取并显示数据库中的结果。我正在运行PHP 5.4.7,我在一个空白的php文件上调用数据库,其中包括要求包含类文件,然后使用此目录$ core-&gt; db_content();测试功能。我正在从头开始构建这个应用程序,从MySQLi指南运行(之前没有使用MySQLi,用于使用普通的MySQL查询),所以如果我做错了请告诉我,谢谢大家。

4 个答案:

答案 0 :(得分:5)

mysqli_fetch_allmysqli_result的方法,而不是mysqli

所以大概应该是$result->fetch_all()

参考文献:

重要:请记住mysqli_result::fetch_all返回整个结果集,而不是您在代码中假设的行

答案 1 :(得分:4)

我在这里看到三个问题。

while($row = $conn->mysqli_fetch_all()){
  1. 当以OOP方式使用时,方法名称为fetch_all()
  2. fetch_all()应与$ result对象一起使用
  3. fetch_all()仅在安装mysqlnd驱动程序时可用 - 通常不会。
  4. Reference

答案 2 :(得分:1)

只有$ result有该方法。如果要在while循环中使用它,请使用fetch_assoc()。 fetch_all()返回一个包含所有数据的关联数组。

while($row = $result->fetch_assoc()){

}

答案 3 :(得分:-1)

感谢所有人,现在它的工作正常,我一如既往($ row = $ conn-&gt; fetch_assoc()){ }之前并改为我上面提到的,但dident看到它应该是$ result而不是$ conn,谢谢你指出这一点。