]>
git.immae.eu Git - github/wallabag/wallabag.git/blob - sqlite.class.php
d5208a295865e488118d307c2168143326a5d883
3 * poche, a read it later open source system
6 * @author Nicolas LÅ“uillet <support@inthepoche.com>
8 * @license http://www.wtfpl.net/ see COPYING file
11 class Sqlite
extends Store
{
13 public static $db_path = 'sqlite:./db/poche.sqlite';
16 function __construct() {
17 parent
::__construct();
19 $this->handle
= new PDO(self
::$db_path);
20 $this->handle
->exec('CREATE TABLE IF NOT EXISTS "entries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "title" VARCHAR, "url" VARCHAR UNIQUE , "is_read" INTEGER DEFAULT 0, "is_fav" INTEGER DEFAULT 0, "content" BLOB)');
21 $this->handle
->setAttribute(PDO
::ATTR_ERRMODE
, PDO
::ERRMODE_EXCEPTION
);
24 private function getHandle() {
28 private function executeQuery($sql, $params) {
31 $query = $this->getHandle()->prepare($sql);
32 $query->execute($params);
37 logm('execute query error : '.$e->getMessage());
41 public function retrieveAll() {
42 $sql = "SELECT * FROM entries ORDER BY id";
43 $query = $this->executeQuery($sql, array());
44 $entries = $query->fetchAll();
49 public function retrieveOneById($id) {
50 parent
::__construct();
53 $sql = "SELECT * FROM entries WHERE id=?";
54 $params = array(intval($id));
55 $query = $this->executeQuery($sql, $params);
56 $entry = $query->fetchAll();
61 public function getEntriesByView($view) {
62 parent
::__construct();
64 switch ($_SESSION['sort'])
67 $order = 'ORDER BY id';
70 $order = 'ORDER BY id DESC';
73 $order = 'ORDER BY lower(title)';
76 $order = 'ORDER BY lower(title) DESC';
79 $order = 'ORDER BY id';
86 $sql = "SELECT * FROM entries WHERE is_read=? " . $order;
90 $sql = "SELECT * FROM entries WHERE is_fav=? " . $order;
94 $sql = "SELECT * FROM entries WHERE is_read=? " . $order;
99 $query = $this->executeQuery($sql, $params);
100 $entries = $query->fetchAll();
105 public function add($url, $title, $content) {
106 parent
::__construct();
107 $sql_action = 'INSERT INTO entries ( url, title, content ) VALUES (?, ?, ?)';
108 $params_action = array($url, $title, $content);
109 $query = $this->executeQuery($sql_action, $params_action);
112 public function deleteById($id) {
113 parent
::__construct();
114 $sql_action = "DELETE FROM entries WHERE id=?";
115 $params_action = array($id);
116 $query = $this->executeQuery($sql_action, $params_action);
119 public function favoriteById($id) {
120 parent
::__construct();
121 $sql_action = "UPDATE entries SET is_fav=~is_fav WHERE id=?";
122 $params_action = array($id);
123 $query = $this->executeQuery($sql_action, $params_action);
126 public function archiveById($id) {
127 parent
::__construct();
128 $sql_action = "UPDATE entries SET is_read=~is_read WHERE id=?";
129 $params_action = array($id);
130 $query = $this->executeQuery($sql_action, $params_action);
133 public function getLastId() {
134 parent
::__construct();
135 return $this->getHandle()->lastInsertId();
138 public function updateContentById($id) {
139 parent
::__construct();
140 $sql_update = "UPDATE entries SET content=? WHERE id=?";
141 $params_update = array($content, $id);
142 $query = $this->executeQuery($sql_update, $params_update);