2012-06-12 57 views
-1

我有一個擴展到正在運行查詢的db_connection的類名db_access;我的類db_access有一個名爲result的方法,你可以看到我只是在我的類中回顯屬性名稱查詢,並且它運行正常。現在我的問題是在db_connection中,如何在構造函數中自動運行我的主機連接?我完成了名爲connect()的函數,並在run()內部調用它,但我希望它能夠自動運行,(順便說一下db_access也是從某個類擴展而來的) 請幫忙。在php中的數據庫連接

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());  
    }  
} 
+0

自動? – mithunsatheesh

+0

我的意思是在run()裏面的mysql_query()會起作用,因爲現在它出錯了,說沒有選擇數據庫 – avien

+0

你打算怎樣調用你的'db_access'? –

回答

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

最後,您應該使用PDOmysqli來代替。家庭功能mysql_已被棄用,並最終被刪除。

0

您永遠不會設置「查詢」屬性。所以我認爲你遺漏了一些代碼。 我敢打賭你也遺漏了一個用於db_access的__construct。在PHP中,你必須手動鏈接你的構造函數。因此,在db_access :: _ 結構中,您需要調用parent :: _construct()

請參閱__construct上的PHP文檔。