आपके कोड में कई समस्याएं हैं।
दूसरे उत्तर में दो को समझाया गया, जिससे आपका कोड काम करेगा (आखिरकार यह सब खराब हो गया था), लेकिन यह अभी भी गलत तरीका है, जो डेटाबेस से जितनी बार आपके पास है उतनी बार कनेक्ट होगा ।
DatabaseConnection वर्ग को इस तरह बदलें
class DatabaseConnection{
public $pdo;
public function __construct(){
$user = 'root';
$pass = '';
$dsn = 'mysql:charset=utf8;dbname=test;host=localhost;charset=utf8';
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
);
$this->pdo = new PDO($dsn, 'root', '', $opt);
}
}
लॉगिन रजिस्टर कंस्ट्रक्टर को इस तरह बदलें
function __construct($db){
$this->db= $db;
}
और इस तरह से register.php करें
require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);
और फिर LoginRegister में $this->db
. का उपयोग करें $pdo
. के बजाय पूरे रास्ते।
$db कनेक्शन को एप्लिकेशन क्लास के लिए बाहरी सेवा बनाने का मुख्य विचार। अन्यथा यह सब तिरस्कृत वैश्विक के समान होगा, लेकिन किसी अन्य रूप में।