Có một số vấn đề với mã của bạn.
Hai câu trả lời đã được giải thích trong câu trả lời khác, điều này sẽ giúp mã của bạn hoạt động (cuối cùng thì tất cả đều bị hỏng), nhưng đó vẫn là cách tiếp cận sai, cách này sẽ kết nối với cơ sở dữ liệu nhiều gấp nhiều lần số đối tượng mà bạn có .
Thay đổi lớp DatabaseConnection theo cách này
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);
}
}
Thay đổi hàm tạo LoginRegister theo cách này
function __construct($db){
$this->db= $db;
}
Và tạo register.php theo cách này
require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);
và sau đó trong Đăng nhập Đăng ký, hãy sử dụng $this->db
thay vì $pdo
tất cả các cách.
Ý tưởng chính để làm cho kết nối $ db trở thành một dịch vụ bên ngoài cho lớp ứng dụng. Nếu không, tất cả sẽ giống như bị khinh thường trên toàn cầu, nhưng chỉ ở một hình thức khác.