Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak użyć $db z innego .php do innej klasy .php za pomocą OOP?

Najlepiej byłoby utworzyć DB klasę lub wykorzystanie już stworzonej, aby osiągnąć to, co próbujesz zrobić.

Zwykłym przepływem dla takich rzeczy jest wywołanie Lazy Loading/Dependency Injection . Gdzie przekazujesz wymagane obiekty do klasy.

Jak Ben stwierdził w komentarzach :

Strona nie wymieniona powyżej, najlepiej przyjrzeć się PHPTheRightWay , wymieniają dużo rzeczy, w tym Wstrzykiwanie zależności .

Skończysz tworząc coś takiego. Byłoby lepiej, gdybyś skorzystał z tego przykładu, aby zrozumieć, jak to działa:

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...
}
 

Teraz przechodzimy do fajnych rzeczy. Właściwie wstrzykuję go do swojej klasy;

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.
 

Jeśli chcesz po prostu udostępnić zasób, możesz wykorzystać global , ale zdecydowanie odradzamy .

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. Błąd składni PHP PDO lub naruszenie dostępu:1064 przy wstawianiu

  2. MySQL:Co oznacza % w kolumnie hosta i jak zmienić hasło użytkownika

  3. Podziel ciąg na wiersz

  4. Ukryj zduplikowane wyniki w zapytaniu MySQL

  5. Zapytanie aktualizujące MySQLdb w Pythonie kończy się niepowodzeniem