1

データベースへの接続を常に 1 つ開いておく方法があるかどうかを知りたいです。私は自分のサイトでこのコードを使用しています:

mysql クラス

class Mysql{
public static $Server   = "localhost";
static $User = 'root';
static $Password = '';
static $DataBaseName = 'teca.v1';
static $Connection;
static $DataBase;
static $LoadConnection = 0;
static $CharSet = "utf8";

static $TRANS =false;
static $TRSS  = array();

public function __construct(){
    if(Mysql::$LoadConnection==0){
        Mysql::$Connection = mysql_connect(Mysql::$Server,Mysql::$User,Mysql::$Password);
        Mysql::$DataBase   = mysql_select_db(Mysql::$DataBaseName,Mysql::$Connection);
        $charset=Mysql::$CharSet;
        mysql_query("SET NAMES $charset");
        Mysql::$LoadConnection=1;
    }
}
}

モデルクラス

class Model extends Mysql{
protected $datamembers = array();
protected $PrimaryKey="Id";
protected $TableName ="Table";
public $UnProtectedExecute = FALSE;

public  function ReadyString($value)
{
    if($this->UnProtectedExecute == TRUE)
        return addslashes($value);
    else
        return $value;
}
public function __set($variable, $value){
    $this->datamembers[strtolower($variable)] = $value;
}

public function __get($variable){
    return $this->datamembers[strtolower($variable)];
}

そして私のオブジェクトの1つ:

class LibraryFiles extends Model{
    public $TableName   = 'library_files';
}

しかし、これが正しいかどうかはわかりません。このコードだけで、プロジェクト内のすべてのオブジェクトに対して1つの接続が作成されますか?

4

2 に答える 2

1

あなたが探しているのは、PHP シングルトン データベース クラスです。アイデアを得るには、以下のリンクを使用してください。ここですべてを繰り返す必要はないと思います。

http://www.matthewelliston.com/php-singleton-database-class/

データベース接続用のグローバルまたはシングルトン?

PHP5 でシングルトン デザイン パターンを作成する

于 2013-03-14T05:50:44.243 に答える
0

あなたのデザインはあまり意味がありません。と のクラスを別々に作成する必要がMySQLありますModelMySQLクラスは一度インスタンス化して、スクリプト全体で使用する必要があります。したがって、接続は 1 つだけにする必要があります。次に、クラスModelのインスタンスを使用してデータを操作します。MySQL

于 2013-03-14T05:51:10.050 に答える