-1

OOP を使用してデータベースからユーザーをフェッチするモジュールを作成しています。

しかし、何らかの理由でレコードが取得されず、mysql エラーも発生していません。

ここに私のコードがあります:

dbsetup_class.php :

<?php

    class mySQL{

        var $host;

        var $username;

        var $password;

        var $database;

        public  $dbc;

        public function connect($set_host, $set_username, $set_password, $set_database)
        {

            $this->host = $set_host;

            $this->username = $set_username;

            $this->password = $set_password;

            $this->database = $set_database;

            $this->dbc = mysqli_connect($this->host, $this->username, $this->password, $this->database) or die('Error connecting to DB'); 

        }


        public function query($sql)
        {
/*          echo "<pre>";
            var_dump($this->dbc);
*/          
            //echo $sql;
            return mysqli_query($this->dbc, $sql) or die('Error querying the Database');
        }

        public function fetch($sql)
        {        
            $array = mysqli_fetch_array($this->query($sql));          
            return $array;
        }

        public function close()
        {
            return mysqli_close($this->dbc);
        }
    }

?>

そして、ここに私のindex.phpがあります:

<?php

    require_once("dbsetup_class.php");

    $connection = new mySQL();

    $connection->connect('localhost', 'admin', 'admin', 'oop_test');
    //die('success');

    $myquery = "SELECT * FROM users";

    $query   = $connection->query($myquery);  

    $array   = $connection->fetch($query);     

    while($array)
    {
        echo $array['first_name'] . '<br />';
        echo $array['last_name'] . '<br />';                
    }

    $connection->close();

?>

私はここで何をしていますか?

4

1 に答える 1

0

メソッドfetchは、クエリの結果ではなく、SQL クエリを想定しています。次のように再定義する必要があります (クライアント コードがインターフェイスとして必要なものであると仮定します)。

public function fetch($resource)
{        
   $array = mysqli_fetch_array($resource);          
   return $array;
}

また、結果があれば、あなたのwhile意志は無限大です。

于 2013-10-21T06:38:59.450 に答える