2012-01-08 14 views
0

ここのポスターのおかげで、私はMySQLIを使い始めました。しかし、私がMySQLを使用する方法からどのように適応するかはわかりません。mySQLI Management

以前は、メインPHPスクリプトの冒頭でMySQLとの接続を開きました。それで、私が使ったサブスクリプトやクラスは、mysql_query()を呼び出すだけで自動的に同じ接続を使います。

MySQLIでは、クラスで接続を使用したい場合、コンストラクタ経由で接続を渡すか、新しいMySQLI接続を作成する必要があります。

以前にMySQL接続を使用していたのと同じ方法でMySQLI接続を使用する方法はありますか?

、世話をする

リー

答えて

1

をコンストラクタへの接続を渡すしばしば好ましい方法です。これは"Dependency Injection"と呼ばれ、ソフトウェアテストに役立ちます。あなたがそのメソッドを使用することを希望されない場合

しかし、あなたは、単に任意のクラスメソッドの内部でグローバルな接続にアクセスすることができます。

// MySQLi connection created in the global scope 
$conn = new MySQLi(...); 

class someClass { 
    public someMethod() { 
    // Call $conn with the global keyword 
    global $conn; 

    $conn->query(...); 
    } 
} 

より良いしかし、クラスのプロパティに$connを格納することです:

class someClass { 
    // Connection property 
    public $conn; 

    public function __construct($conn) { 
    $this->conn = $conn; 
    } 

    public someMethod() { 
    $this->conn->query(...); 
    } 
} 

オブジェクト指向ではなく手続き型のコンテキストでMySQLiを使用している場合は、linkパラメータを指定する必要があります。本当にその周りに道はありません。

+0

ありがとう、それは私が恐れていたものです。 –