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

OOPを使用して別の.phpから別の.phpのクラスに$dbを使用するにはどうすればよいですか?

    DBを作成するのが最善です クラスまたはすでに作成されたものを利用して、あなたがやろうとしていることを達成します。

    このようなものの通常のフローは、遅延読み込み/依存性注入 と呼ばれます。 。必要なオブジェクトをクラスに渡す場所。

    コメントでベンが述べたように

    上記以外の側面として、 PHPTheRightWayを確認することをお勧めします。 ロットがリストされています 依存性注入 を含む 。

    のようなものを作成することになります。この例に従って、どのように機能するかを理解するとよいでしょう。

    Class DB {
    
        function __construct($host, $user, $pass, $db) { 
            return $this->connect($host, $user, $pass, $db); 
        }
    
        function connect($host, $user, $pass, $db) {
            //..connect and all.
        }
    
        //...the rest of your functions/class...
    }
     

    今、私たちは楽しいものに取り掛かります。実際にクラスに注入します;

     Class Foo {
    
        $private $db;
    
        // your construct method here will ONLY except a `DB` class instance/object as $db. 
        // Try it with anything else and learn from the errors to understand what I mean.
        function __construct(DB $db){
            $this->db = $db;
        }
    
    }
    
    $db = new DB($host, $user, $pass, $db);
    // you can error check it here
    
    $foo = new Foo($db);// inject the $db object.
    > 

    リソースを共有したいだけの場合は、globalを利用できます。 、ただし、強くお勧めしません

     include('connection.db.php');
    
    class MySQLqueries {
            public function samplefunction($queryString) {
                global $db;
                $sqlQry = mysqli->query($queryString);
    
                return ($sqlQry) ? "<pre>Query Executed Successfully</pre>" : die("<pre>An error occured -> $db->error</pre>");
            }
    }
     



    1. MySQL/MariaDBテーブルの現在のAuto_Incrementシーケンス番号を取得する方法

    2. mysqlとjavaのTimeZoneの不一致

    3. 配列に一致する要素をSQLで選択し、それらを行に表示します

    4. PostgreSQLスキーマ管理の基本