Файл db.php:
<?php
class Database
{
private $host;
private $port;
private $dbname;
private $user;
private $password;
protected $conn;
public function __construct($host, $port, $dbname, $user, $password) {
$this->host = $host;
$this->port = $port;
$this->dbname = $dbname;
$this->user = $user;
$this->password = $password;
}
function error($error, $id)
{
echo $error.", ". $id;
die;
}
public function connect()
{
$result = $this->conn = new PDO("pgsql:host=$this->host port=$this->port dbname=$this->dbname user=$this->user password=$this->password");
}
}
и result.php:
<?php
require "db.php";
class Result extends Database
{
private $save;
public function __construct() {
parent::__construct("127.0.0.1", 5432, "blue", "postgres", "postgres");
}
public function validate()
{
$this->connect();
$sql = 'INSERT INTO test (name, surname, age, active) VALUES (:name, :surname, :age, :active)';
$stmt = $this->conn->prepare($sql);
$stmt->bindValue(':name', "Magdalena");
$stmt->bindValue(':surname', "Blizna");
$stmt->bindValue(':age', 29);
$stmt->bindValue(':active', false);
$stmt->execute();
return $stmt;
}
}
$save = new Result();
$save->validate();
Я пытаюсь вставить элемент в базу данных, но php возвращает ошибку:
Неустранимая ошибка: необученная ошибка: вызов функции-члена prepare () со значением NULL
Соединение с файлом базы данных в порядке.Для связи с базой данных я использую переменную $conn
из db.php
.
Я редактирую функцию проверки.