-1

我有一个类名 db_access 扩展为运行查询的 db_connection;我的类 db_access 有一个名为 result 的方法,你可以看到我只是在我的类中回显属性名称查询,它运行正常。现在我的问题出在 db_connection 中,如何在构造函数中自动运行主机连接?我完成了名为 connect() 的函数并在 run() 中调用它,但我希望它自动运行,(顺便说一下 db_access 也是从某个类扩展的)请帮忙。

class db_access extends db_connection
{       
    public function result()
    {           
                echo $this->query;
            $this->run();           

    }       
}


class db_connection{    
      private $link;      

      public function __construct() {    
        $this->link=mysql_connect('localhost','root','') or die(mysql_error());         
        mysql_select_db('jsample');
      }

    public function run(){
        echo $this->query;
        mysql_query($this->query) or die(mysql_error());    
    }       
} 
4

2 回答 2

0

一方面,在你的db_connection::run()你应该传递$this->linkmysql_query

public function run()
{
    echo $this->query;
    mysql_query($this->query, $this->link) or die(mysql_error());    
}

其次,您应该检查是否mysql_select_db()返回truefalse

if (false === mysql_select_db('jsample', $this->link)) {
    die("Could not select database");
}

第三,你在哪里设置$this->query

最后,您应该使用PDOormysqli代替。家庭功能已被弃用,mysql_最终将被删除。

于 2012-06-12T05:08:14.453 回答
0

您永远不会设置“查询”属性。所以我认为你遗漏了一些代码。我敢打赌,您还为 db_access 遗漏了一个 __construct。在 PHP 中,您必须手动链接您的构造函数。所以在 db_access::_构造中你需要调用 parent:: _construct()

请参阅__construct上的 PHP 文档。

于 2012-06-12T05:11:03.047 回答