-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 回答