-1

クエリを実行している db_connection に拡張されたクラス名 db_access があります。私のクラス 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->linkますmysql_query

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

mysql_select_db()次に、返品されたtrueかどうかを確認する必要がありますfalse

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

第三に、どこに設定し$this->queryますか?

最後に、PDOまたはmysqli代わりにを使用する必要があります。mysql_ファミリ関数は非推奨になり、最終的には削除されます。

于 2012-06-12T05:08:14.453 に答える
0

「query」プロパティを設定することはありません。だから私はあなたがいくつかのコードを省略したと思います。db_accessの__constructも省略したに違いありません。PHPでは、コンストラクターを手動でチェーンする必要があります。したがって、db_access :: _コンストラクト内では、parent :: _construct()を呼び出す必要があります。

__constructに関するPHPのドキュメントを参照してください。

于 2012-06-12T05:11:03.047 に答える