0

データベースエントリを表示するために参照し続けることができるスクリプトを作成しようとしています。私の問題は、結果を表示しようとしているときに、mysqli とクエリを呼び出す方法がわからないことだと思います。私が得ているエラーは Call to a member function fetch_row() on a non-object in

class connectDatabase {


public $category;
public $query; 
public $mysqli;

    public function __construct($DB_HOST, $DB_USER, $DB_PWD, $DB_NAME)
    {
        $mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PWD, $DB_NAME);
        return $this->mysqli = $mysqli;

    }

    public function queryInformation($category) {
        $query = "SELECT * FROM postad WHERE `category` = $this->category ORDER by date desc";
            return $this->query = $query;


    }
    public function displayResult() {
        $mysqli = $this->mysqli ; 
        $query = $this->query;
        $result = $mysqli->query($query);

        while ($row = $result->fetch_row()) {
        echo "$row[1] $row[2] $row[3] $row[4]  </br>" ;

    }

    }
}
4

2 に答える 2

1

var_dump $result の場合、クエリが失敗しているため、おそらくブール値 false です。成功した場合はオブジェクトになるはずです。戻り値がブール値の場合に備えて、フェイル セーフが必要です。

戻り値を確認してください: http://php.net/manual/en/mysqli.query.php

于 2013-01-28T04:32:48.987 に答える
0

これを少し単純化できます。

これを試して

    $mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PWD, $DB_NAME);
    $category = "something";

    $result = $mysqli->query("SELECT * FROM postad WHERE `category` = '$category' ORDER by date desc");
    while ($row = $result->fetch_row()) {
        echo "$row[1] $row[2] $row[3] $row[4]  </br>" ;

    }
于 2013-01-28T04:17:25.963 に答える