PHP中没有使用OOP返回记录

时间:2013-10-21 06:34:21

标签: php mysql oop

我正在创建一个模块,我在其中从使用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();

?>

我在这做什么?

1 个答案:

答案 0 :(得分:0)

您的fetch方法需要SQL查询,而不是查询结果。您应该将其重新定义为(假设客户端代码是您想要的接口):

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

如果您有结果,那么while将是无限的。