Добрый день. Продолжаю вникать в ООП, и столкнулся с тем, что не до конца понимаю суть геттеров и сеттеров.
Есть класс:
class Forms {
private $insertID = '';
public function __construct() {
// подключение своему классу для работы с PDO (db_pdo.php)
try {
require_once 'c:\xampp\htdocs\EnginePHP\class\db_pdo.php';
$this->myPDO = new DB_PDO();
} catch(Exeption $e) {
echo "Ошибка создания класса";
}
//
}
// возвращаем ID вставленной записи
public function getID() {
return $this->insertID;
}
// устанавливаем ID вставленной записи
public function setID($insert) {
$this->insertID = $insert;
}
// вывод city и установка префикса
public function outCity() {
require 'c:\xampp\htdocs\EnginePHP\polls\city10.php';
// получаем ID города по префиксу
if (@$_REQUEST['select']) {
$data = array($_REQUEST['select']);
$pref = $this->myPDO->selectWhere("SELECT `id` FROM `city` WHERE `prefix` = ?", $data);
$id_city = implode('', $pref);
// вставляем первую запись, получаем номер первой записи, для дальнейшего обновления по номеру записи
$data = array( 'date_start' => date("Y-m-d H:i:s"), 'id_city' => $id_city );
var_dump($data);
$result = $this->myPDO->insert("INSERT INTO `result` (date_start, id_city) values (:date_start, :id_city)", $data);
if ($result) {
$this->setID($result);
} else {
echo "Insert error!";
}
var_dump($this->getID());
}
}
// вывод school с префиксом
public function outSchool() {
require 'c:\xampp\htdocs\EnginePHP\polls\school20.php';
// получаем id текущей записи и обновляем выбор пользователя - школа
if (@$_REQUEST['select1']) {
$id = $this->getID();
var_dump($id);
$id_school = ($_REQUEST['select1']);
$data = array( 'id_school' => $id_school, 'id' => $id );
var_dump($data);
$result = $this->myPDO->update("UPDATE `result` SET `id_school` = :id_school WHERE `id` = :id", $data);
if ($result == 0) {
echo "Update error!";
}
}
}
// вывод первой части опроса
public function outOpros1() {
require 'c:\xampp\htdocs\EnginePHP\polls\opros30.php';
$id = $this->getID();
var_dump($id);
$age = $_REQUEST['ages'];
$own = $_REQUEST['familys'];
$clas = $_REQUEST['clasC'];
$data = array ('age' => $age, 'own' => $own, 'class' => $clas, 'id' => $id );
$this->myPDO->update("UPDATE `result` SET `age` = :age, `own` = :own, `class` = :class WHERE `id` = :id", $data);
}
}
Когда я вставляю запись, у меня все нормально, возвращается АйДи этой записи. В следующем методе, я по этому АйДи должен обновить запись, но уже в методе getID() пусто. Не пойму. Например, для использования префиксов, я использую точно такие же геттеры и сеттеры, все работает. Запросы проверены, все работает, если вместо геттера подсунуть обычное число ID. И главное ошибок не выдает, просто вот есть свойство $this->insertID, и вот оно пустое...