You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Php_RSS/fluxRSS/src/DAL/ArticleGateway.php

73 lines
2.0 KiB

<?php
namespace DAL;
use Exception;
use metier\Article;
use metier\Flux;
use PDO;
use DateTime;
class ArticleGateway
{
private $con;
/**
* @param $con
*/
public function __construct($con)
{
$this->con = $con;
}
/**
* @throws Exception
*/
public function getAllArticles():array
{
try {
$query = 'SELECT * FROM Article;';
$this->con->executeQuery($query, array());
return $this->con->getResults();
}catch (\PDOException $e){
throw new Exception("PDO error");
}
}
/**
* @throws Exception
*/
public function addArticle(Article $article){
try {
$query = 'INSERT INTO Article VALUES (:id,:title,:datePub,:description,:guid,:link,:mediaContent,:provenance);';
$this->con->executeQuery($query, array(':id' => array($article->getId(), PDO::PARAM_INT),
':title' => array($article->getTitle(), PDO::PARAM_STR),
':datePub' => array($article->getDate(), PDO::PARAM_STR),
':description' => array($article->getDescription(), PDO::PARAM_STR),
':guid' => array($article->getGuid(), PDO::PARAM_STR),
':link' => array($article->getLink(), PDO::PARAM_STR),
':mediaContent' => array($article->getMediaContent(), PDO::PARAM_STR),
':provenance' => array($article->getProvenance(), PDO::PARAM_INT)));
}catch (\PDOException $e){
throw new Exception("PDO error");
}
}
public function removeAllArticleForParser(){
try{
$query = 'DELETE FROM Article;';
$this->con->executeQuery($query);
}catch(\PDOException $p){
throw new Exception("Data is not delete.");
}
}
public function findArticleByFlux(int $flux){
$query = 'SELECT * FROM Article WHERE provenance = :flux;';
$this->con->executeQuery($query, array(':flux' => array($flux, PDO::PARAM_INT)));
return $this->con->getResults();
}
}