1

データベース接続オブジェクトを作成していますが、最適な方法がわかりません...

(mysql_connect を使用して) 接続を確立する dbConnection クラスを作成した場合、メイン スクリプトのどこからでも mysql_query を呼び出すことができますか?

OTHERクラスの中からはどうですか?オブジェクトまたは属性をパラメーターとして渡す必要がありますか?

基本的に、単純なクラスを使用してONCEデータベースに接続するための最良の方法(速度+メモリの観点から)を探しています...

Database Connection クラスのコンストラクターを投稿しました。

function __construct($database="") {
if (!empty($database)){ $this->db = $database; }
$this->dblink = mysql_connect($this->host,$this->username,$this->password);
if (!this->dblink) {
    //Fatal Error
}
mysql_select_db($this->db, $this->dblink);

}

4

3 に答える 3

1

独自のデータベース抽象化クラスを作成するよりも、ezSQLを試してみることをお勧めします。作者はそれを非常に使いやすくするという優れた仕事をしました. クラスによって実行されたクエリから返されるデータ構造は、mysql_query によって返されるものよりもはるかに柔軟であり、多くの作業を節約できます。

于 2009-02-02T20:50:42.613 に答える
0

クエリを実行する場合は、接続オブジェクトをパラメーターとしてクエリ関数に渡す必要があります。クエリを実行したい場所ならどこでも接続オブジェクトにアクセスできる必要があります。

require_once DBConnection;
require_once SomeClass;

$con = new DBConnection();
$query = "Select * FROM Users";
mysql_query($query, $con->link);

// Use the connection in another class that takes a connection object in the constructor
$someclass = new SomeClass($con);
$someclass->executeQueryThree();

ただし、次のようなメソッドとして DBConnection クラス内に mysql_query を含める傾向があります。

public function query($query) { $result = mysql_query($query, $this->link); $結果を返します。}

そして、次の操作を行います。

$query = "Select * FROM Users";
$con = new DBConnection();
$result = $con->query($query);

// From within SomeClass
$someclass = new SomeClass();
$result = $con->query($someclass->getQuery3());
于 2009-02-02T21:11:31.997 に答える