sql >> データベース >  >> RDS >> Mysql

すべてのクエリで再接続せずに、PHPでmysqlに効率的に接続するにはどうすればよいですか?

    通常、接続はページが読み込まれると発生します。 AKA

    class Database{
        public function connect()
        {
             $this->connection = mysql_connect();
        }
    
        // This will be called at the end of the script.
        public function __destruct()
        {
            mysql_close($this->connection);
        }
    
        public function function query($query)
        {
            return mysql_query($query, $this->connection);
        }
    }
    $database = new Database;
    $database->connect();
    
    $database->query("INSERT INTO TABLE (`Name`) VALUES('Chacha')");
    

    基本的に、接続はページの最初で開き、最後のページで閉じます。そうすれば、ページ内でさまざまなクエリを実行でき、接続に対して何もする必要がありません。

    Erikが提案するように、コンストラクターでmysql_connectを実行することもできます。

    グローバル変数を使用して上記を使用するには(グローバル状態を作成するため推奨されません)、次のようにします

    Global $db;
    
    $db = new Database;
    // ... do startup stuff
    
    function doSomething()
    {
        Global $db;
        $db->query("Do Something");
    }
    

    ああ、そして誰もあなたがパラメータを渡す必要がないことを言及しませんでした。接続するだけです

    mysql_connect();
    

    次に、mysql_queryは、スコープが何であっても、最後の接続のみを使用します。

    mysql_connect();
    
    function doSomething()
    {
        mysql_query("Do something");
    }
    

    コメントによると:

    mysql_connectを使用するかどうかを検討することをお勧めします またはmysql_pconnect 。ただし、スクリプトごとに1回だけ接続する必要があります。



    1. 単一のクエリを使用して複数の行を挿入するときに、挿入されたすべてのIDを取得します

    2. android.database.sqlite.SQLiteException:near s:構文エラー(コード1):、

    3. WAMPサーバーは緑色ですが、404しか取得できません

    4. 現在のビューのAPPL_TOPスナップショットとは