118 lines
3.1 KiB
PHP
118 lines
3.1 KiB
PHP
<?php
|
|
namespace Src\TableGateways;
|
|
|
|
class PersonGateway {
|
|
|
|
private $db = null;
|
|
|
|
public function __construct($db)
|
|
{
|
|
$this->db = $db;
|
|
}
|
|
|
|
public function findAll()
|
|
{
|
|
$statement = "
|
|
SELECT
|
|
id, firstname, lastname, firstparent_id, secondparent_id
|
|
FROM
|
|
person;
|
|
";
|
|
|
|
try {
|
|
$statement = $this->db->query($statement);
|
|
$result = $statement->fetchAll(\PDO::FETCH_ASSOC);
|
|
return $result;
|
|
} catch (\PDOException $e) {
|
|
exit($e->getMessage());
|
|
}
|
|
}
|
|
|
|
public function find($id)
|
|
{
|
|
$statement = "
|
|
SELECT
|
|
id, firstname, lastname, firstparent_id, secondparent_id
|
|
FROM
|
|
person
|
|
WHERE id = ?;
|
|
";
|
|
|
|
try {
|
|
$statement = $this->db->prepare($statement);
|
|
$statement->execute(array($id));
|
|
$result = $statement->fetchAll(\PDO::FETCH_ASSOC);
|
|
return $result;
|
|
} catch (\PDOException $e) {
|
|
exit($e->getMessage());
|
|
}
|
|
}
|
|
|
|
public function insert(Array $input)
|
|
{
|
|
$statement = "
|
|
INSERT INTO person
|
|
(firstname, lastname, firstparent_id, secondparent_id)
|
|
VALUES
|
|
(:firstname, :lastname, :firstparent_id, :secondparent_id);
|
|
";
|
|
|
|
try {
|
|
$statement = $this->db->prepare($statement);
|
|
$statement->execute(array(
|
|
'firstname' => $input['firstname'],
|
|
'lastname' => $input['lastname'],
|
|
'firstparent_id' => $input['firstparent_id'] ?? null,
|
|
'secondparent_id' => $input['secondparent_id'] ?? null,
|
|
));
|
|
return $statement->rowCount();
|
|
} catch (\PDOException $e) {
|
|
exit($e->getMessage());
|
|
}
|
|
}
|
|
|
|
public function update($id, Array $input)
|
|
{
|
|
$statement = "
|
|
UPDATE person
|
|
SET
|
|
firstname = :firstname,
|
|
lastname = :lastname,
|
|
firstparent_id = :firstparent_id,
|
|
secondparent_id = :secondparent_id
|
|
WHERE id = :id;
|
|
";
|
|
|
|
try {
|
|
$statement = $this->db->prepare($statement);
|
|
$statement->execute(array(
|
|
'id' => (int) $id,
|
|
'firstname' => $input['firstname'],
|
|
'lastname' => $input['lastname'],
|
|
'firstparent_id' => $input['firstparent_id'] ?? null,
|
|
'secondparent_id' => $input['secondparent_id'] ?? null,
|
|
));
|
|
return $statement->rowCount();
|
|
} catch (\PDOException $e) {
|
|
exit($e->getMessage());
|
|
}
|
|
}
|
|
|
|
public function delete($id)
|
|
{
|
|
$statement = "
|
|
DELETE FROM person
|
|
WHERE id = :id;
|
|
";
|
|
|
|
try {
|
|
$statement = $this->db->prepare($statement);
|
|
$statement->execute(array('id' => $id));
|
|
return $statement->rowCount();
|
|
} catch (\PDOException $e) {
|
|
exit($e->getMessage());
|
|
}
|
|
}
|
|
}
|
|
|