0

重複の可能性:
mysql_fetch_array() は、パラメーター 1 がリソースの問題であると想定しています

PHPでのプログラミングに関しては、私は初心者です。現在、データベースを使用するプロジェクトに取り組んでいます。クエリを呼び出そうとすると問題が発生します:$r = mysqli_query($db, $q);次のエラーが発生します: ここに画像の説明を入力

これは、データベースに接続するクラスです。

class conectDB{
var $dbUser;
var $dbPassword;
var $dbHost;
var $dbName;

function __construct() {
    $this->dbUser ='root';
    $this->dbPassword = '';
    $this->dbHost = 'localhost';
    $this->dbName = 'db';
    $dbc = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPassword, $this->dbName) or die('Fatal error!');
 }
}

そして、ここでクエリを呼び出します。

$db = new conectDB();
$q='SELECT * FROM categories ORDER BY category';
$r = mysqli_query($db, $q);
while(list($id, $category) = mysqli_fetch_array($r, MYSQLI_NUM)){
 echo '<li><a href="category.php?id='.$id.'" title="'.$category.'">'.$category.'</a></li>';
}
4

1 に答える 1

1

conectDBによって返されるリンクの代わりに、クラスのインスタンスを指定していますmysqli_connect

あなたはそのようなことをするかもしれません(あなたが見逃しているリターンに注意してください):

class conectDB {
    protected $dbUser;
    protected $dbPassword;
    protected $dbHost;
    protected $dbName;
    protected $link;

    function __construct() {
        $this->dbUser ='root';
        $this->dbPassword = '';
        $this->dbHost = 'localhost';
        $this->dbName = 'db';

        $this->link = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPassword, $this->dbName) or die('Fatal error!');
     }

    public function getLink() {
      return $this->link;
    }
}

そしてそれを使う

$db = new conectDB();
$q='SELECT * FROM categories ORDER BY category';
$r = mysqli_query($db->getLink(), $q);

サイド ノードでは、varキーワードをもう使用しないでください: http://php.net/manual/en/language.oop5.properties.php

于 2013-01-13T11:53:18.003 に答える