dbh = $dbh; $this->db_helper = new \tts\database\help_save($this->dbh, $this->name_demo_table); } public function is_valid(array $data): bool { return \tts\database\help_load::is_valid($data); } public function pre_save(): bool { $missing = $this->db_helper->get_missing(); if (count($missing)) { echo "Required fields not set " . implode(",", $missing) . "!"; return false; } if ($this->db_helper->dump_diff()) { return false; // Opps forgot a field! } return true; } public function init_name_demo_table(): void { $create_table_sql = "CREATE TABLE IF NOT EXISTS `{$this->name_demo_table}`( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `first_name` TEXT, `last_name` TEXT, `age` INTEGER )"; try { $this->dbh->query($create_table_sql); } catch (\PDOException $e) { echo \tts\exceptions\DB_Exception::customMessage($e, "Unable to make table!"); } } public function populate($rows): void { $dummy = new \tts\database\dummy_data($this->dbh); $data = [ 'first_name' => \tts\arrays\mocking\rnd_names::get_first_names(), 'last_name' => \tts\arrays\mocking\rnd_names::get_last_names(), 'age' => \tts\arrays\mocking\rnd_names::mock_age() ]; try { $dummy->add_dummy_data($this->name_demo_table, $rows, $data); } catch (\PDOException $e) { echo \tts\exceptions\DB_Exception::customMessage($e, "Unable to populate table!"); } } public function get_member(string $member): ?string { return $this->db_helper->get_member($member); } public function save_new_user(array $input): bool { $set = $this->db_helper->set_members_by_generator($input); if ($set === false) { return false; // Found Validation issues in input } try { $status = $this->db_helper->save($this); } catch (\PDOException $e) { echo \tts\exceptions\DB_Exception::customMessage($e, "Unable to save changes!"); } if ($status === $this->db_helper::successful_save) { return true; // It saved } return false; // It did not save } public function get_users(int $number_of_users_to_get = 12): \Generator { if ($number_of_users_to_get === 0) { return \tts\database\help_load::empty_generator(); } try { $sql = "SELECT * FROM {$this->name_demo_table} LIMIT {$number_of_users_to_get}"; $result = $this->dbh->query($sql); return \tts\database\help_load::pdo_fetch_lazy($result); } catch (\PDOException $e) { echo \tts\exceptions\DB_Exception::customMessage($e); } } }