Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам $db от друг .php към друг .php клас, използвайки ООП?

Най-добре е да създадете DB клас или да използвате вече създаден такъв, за да постигнете това, което се опитвате да направите.

Обичайният поток за неща като това е извикване Lazy Loading/Dependency Injection . Където предавате необходимите обекти в класа.

Както Бен заяви в коментарите :

Страна, която не е посочена по-горе, най-добре е да погледнете 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL заявка:подреждане по дължина на знаците?

  2. как да актуализирате базата данни последователно с помощта на mysql

  3. MySQL Group По персонализирано времеви печат

  4. Използване на курсор в съхранена процедура за зацикляне на редове в MySQL

  5. Случайна претеглена селекция на събитие