Faresti meglio a creare un DB
classe o sfruttandone uno già creato per ottenere ciò che stai cercando di fare.
Il solito flusso per cose del genere è call Lazy Loading/Dependency Injection . Dove stai passando gli oggetti richiesti nella classe.
Come ha affermato Ben nei commenti :
Un lato diverso da quello sopra menzionato, sarebbe meglio guardare PHPTheRightWay , elencano un lotto di materiale, tra cui Iniezione di dipendenza .
Finirai per creare qualcosa di simile. Sarebbe meglio se seguissi questo esempio per capire come funziona:
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...
}
Ora arriviamo alle cose divertenti. Effettivamente iniettandolo nella tua classe;
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.
Se vuoi solo condividere la risorsa, puoi sfruttare global
, ma è fortemente sconsigliato .
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>");
}
}