Es gibt mehrere Probleme mit Ihrem Code.
Zwei wurden in der anderen Antwort erklärt, wodurch Ihr Code funktioniert (schließlich war alles verdorben), aber es ist immer noch ein falscher Ansatz, der eine Verbindung zur Datenbank so oft herstellt, wie Sie Objekte haben .
Ändern Sie die DatabaseConnection-Klasse auf diese Weise
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);
}
}
Ändern Sie den LoginRegister-Konstruktor auf diese Weise
function __construct($db){
$this->db= $db;
}
Und machen Sie register.php auf diese Weise
require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);
und dann in LoginRegister verwenden Sie $this->db
statt $pdo
den ganzen Weg.
Die Grundidee, die $db-Verbindung zu einem externen Dienst für die Anwendungsklasse zu machen. Sonst wird es wie global verachtet sein, nur eben in anderer Form.