Bạn chỉ có những sai lầm somes trong mã của bạn. Hãy thử sử dụng các dòng này:
Tệp kết nối:
<?php
class Connection {
public $dbh;
// Setting Database Source Name (DSN)
public function __construct() {
$dsn = 'mysql:host=localhost;dbname=employees';
// Setting options
$options = array (PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
// Making the connection to the database
try {
$this->dbh = new PDO($dsn, 'root', '', $options);
}
catch (PDOException $e) {
$this->error = $e->getMessage();
}
}
}
$connection = new connection();
tệp users.php:
<?php
include 'connection.php';
class Users {
public $name;
public $surname;
public $employmentDate;
public $connection;
public function __construct($connection)
{
$this->connection = $connection;
if(isset($_POST['Submit'])) {
$this->name = $_POST['name'];
$this->surname = $_POST['surname'];
$this->employmentDate = $_POST['employmentDate'];
}
}
// Inserting users values to the database table
public function insertUserValues() {
$query = 'INSERT INTO employee (name,surname,employment_date) VALUES (:name,:surname,:employmentDate)';
$stmt = $this->connection->dbh->prepare($query);
$stmt->bindValue(':name',$this->name, PDO::PARAM_STR);
$stmt->bindValue(':surname',$this->surname, PDO::PARAM_STR);
$stmt->bindValue(':employmentDate',$this->employmentDate, PDO::PARAM_STR);
$stmt->execute();
}
}
$users = new Users($connection);
$users->insertUserValues();
Giải thích:
- Bạn phải chuyển biến $ connect vào lớp người dùng của mình (hoặc nhập biến đó bằng
global $connection;
) - Tệp kết nối của bạn phải hiển thị thuộc tính dbh, nếu không, bạn sẽ không thể thực hiện bất kỳ truy vấn nào trên cơ sở dữ liệu của mình
- PDO chuẩn bị () phương thức đang đợi một truy vấn trong đối số đầu tiên
- Bạn không cần phải chuyển một mảng để thực thi phương thức () nếu bạn đã liên kết các giá trị của mình trước đó