-2

MVC 返回 fetch_array/object 结果的类

  class DbDriver{
    private $connection;
    private $query;
    private $result;
    public function connect()
        {
        $host             = 'localhost';
        $user             = '';
        $password         = '';
        $database         = '';
        $this->connection = mysql_connect($host, $user, $password);
        $this->connection = mysql_select_db($database);
        return TRUE;
        }
    public function disconnect()
        {
        $this->connection->mysql_close();
        return TRUE;
        }
    public function prepare($query)
        {
        $this->query = $query;
        return TRUE;
        }
    public function query()
        {
        if (isset($this->query))
            {
            $this->result = $this->connection->mysql_query($this->query);
            return TRUE;
            }
        return FALSE;
        }
    public function fetch($type = 'object')
        {
        if (isset($this->result))
            {
            switch ($type)
            {
                case 'array':
                    $row = $this->result->mysql_fetch_array();
                    break;
                case 'object':
                default:
                    $row = $this->result->mysql_fetch_object();
                    break;
            }
            return $row;
            }
        return FALSE;
        }
    }

返回

[2012 年 5 月 30 日星期三 11:55:42] [错误] [客户端] PHP 致命错误:在第 30 行的 /var/www/httpdocs/test/mysql.php 中的非对象上调用成员函数 mysql_query()

第 30 行

        $this->result = $this->connection->mysql_query($this->query);

生病疯了。>.<

4

2 回答 2

5

因为mysql_query:

成功时返回 MySQL 链接标识符,失败时返回 FALSE。

所以 $this->connection 不是object

请使用PDO驱动或MySQLi,mysql_* 扩展将在未来被弃用

好的 PDO示例

于 2012-05-30T09:13:51.750 回答
0

这是你的问题

$this->connection = mysql_select_db($database);

mysql_select_db返回bool

但请看一下 PDO 或 mysqli

于 2012-05-30T09:16:11.910 回答