From 2a798e544b93d112bad5d1622b06a8f7bfc525cd Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 28 Nov 2013 21:49:55 +0100 Subject: Commentaire ETag --- public/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.php b/public/index.php index cabd836d5..3a2bcd3ae 100755 --- a/public/index.php +++ b/public/index.php @@ -31,7 +31,7 @@ if (file_exists ('install.php')) { @filemtime(LOG_PATH . '/application.log'), @filemtime(DATA_PATH . '/application.ini') ); - $_SERVER['QUERY_STRING'] .= '&utime=' . file_get_contents(DATA_PATH . '/touch.txt'); + $_SERVER['QUERY_STRING'] .= '&utime=' . file_get_contents(DATA_PATH . '/touch.txt'); //For ETag if (httpConditional($dateLastModification, 0, 0, false, false, true)) { exit(); //No need to send anything } -- cgit v1.2.3 From e8f170f5e35759fa1189d6e7272ca24b3568079d Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 28 Nov 2013 22:05:20 +0100 Subject: Protection des requêtes SQL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrige https://github.com/marienfressinaud/FreshRSS/issues/294 --- app/models/Category.php | 24 ++++++++++---------- app/models/Entry.php | 58 ++++++++++++++++++++++++------------------------- app/models/Feed.php | 34 ++++++++++++++--------------- 3 files changed, 58 insertions(+), 58 deletions(-) diff --git a/app/models/Category.php b/app/models/Category.php index a01034f4e..5915132f4 100755 --- a/app/models/Category.php +++ b/app/models/Category.php @@ -86,7 +86,7 @@ class Category extends Model { class CategoryDAO extends Model_pdo { public function addCategory ($valuesTmp) { - $sql = 'INSERT INTO ' . $this->prefix . 'category (name, color) VALUES(?, ?)'; + $sql = 'INSERT INTO `' . $this->prefix . 'category` (name, color) VALUES(?, ?)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -104,7 +104,7 @@ class CategoryDAO extends Model_pdo { } public function updateCategory ($id, $valuesTmp) { - $sql = 'UPDATE ' . $this->prefix . 'category SET name=?, color=? WHERE id=?'; + $sql = 'UPDATE `' . $this->prefix . 'category` SET name=?, color=? WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -123,7 +123,7 @@ class CategoryDAO extends Model_pdo { } public function deleteCategory ($id) { - $sql = 'DELETE FROM ' . $this->prefix . 'category WHERE id=?'; + $sql = 'DELETE FROM `' . $this->prefix . 'category` WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -138,7 +138,7 @@ class CategoryDAO extends Model_pdo { } public function searchById ($id) { - $sql = 'SELECT * FROM ' . $this->prefix . 'category WHERE id=?'; + $sql = 'SELECT * FROM `' . $this->prefix . 'category` WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -154,7 +154,7 @@ class CategoryDAO extends Model_pdo { } } public function searchByName ($name) { - $sql = 'SELECT * FROM ' . $this->prefix . 'category WHERE name=?'; + $sql = 'SELECT * FROM `' . $this->prefix . 'category` WHERE name=?'; $stm = $this->bd->prepare ($sql); $values = array ($name); @@ -175,15 +175,15 @@ class CategoryDAO extends Model_pdo { $sql = 'SELECT c.id AS c_id, c.name AS c_name, ' . ($details ? 'c.color AS c_color, ' : '') . ($details ? 'f.* ' : 'f.id, f.name, f.website, f.priority, f.error, f.cache_nbEntries, f.cache_nbUnreads ') - . 'FROM ' . $this->prefix . 'category c ' - . 'LEFT OUTER JOIN ' . $this->prefix . 'feed f ON f.category = c.id ' + . 'FROM `' . $this->prefix . 'category` c ' + . 'LEFT OUTER JOIN `' . $this->prefix . 'feed` f ON f.category = c.id ' . 'GROUP BY f.id ' . 'ORDER BY c.name, f.name'; $stm = $this->bd->prepare ($sql); $stm->execute (); return HelperCategory::daoToCategoryPrepopulated ($stm->fetchAll (PDO::FETCH_ASSOC)); } else { - $sql = 'SELECT * FROM ' . $this->prefix . 'category ORDER BY name'; + $sql = 'SELECT * FROM `' . $this->prefix . 'category` ORDER BY name'; $stm = $this->bd->prepare ($sql); $stm->execute (); return HelperCategory::daoToCategory ($stm->fetchAll (PDO::FETCH_ASSOC)); @@ -191,7 +191,7 @@ class CategoryDAO extends Model_pdo { } public function getDefault () { - $sql = 'SELECT * FROM ' . $this->prefix . 'category WHERE id=1'; + $sql = 'SELECT * FROM `' . $this->prefix . 'category` WHERE id=1'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -222,7 +222,7 @@ class CategoryDAO extends Model_pdo { } public function count () { - $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'category'; + $sql = 'SELECT COUNT(*) AS count FROM `' . $this->prefix . 'category`'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -231,7 +231,7 @@ class CategoryDAO extends Model_pdo { } public function countFeed ($id) { - $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'feed WHERE category=?'; + $sql = 'SELECT COUNT(*) AS count FROM `' . $this->prefix . 'feed` WHERE category=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); @@ -241,7 +241,7 @@ class CategoryDAO extends Model_pdo { } public function countNotRead ($id) { - $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE category=? AND e.is_read=0'; + $sql = 'SELECT COUNT(*) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id WHERE category=? AND e.is_read=0'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); diff --git a/app/models/Entry.php b/app/models/Entry.php index f8ec1287c..739c2a582 100755 --- a/app/models/Entry.php +++ b/app/models/Entry.php @@ -199,7 +199,7 @@ class Entry extends Model { class EntryDAO extends Model_pdo { public function addEntry ($valuesTmp) { - $sql = 'INSERT INTO ' . $this->prefix . 'entry(id, guid, title, author, content, link, date, is_read, is_favorite, id_feed, tags) VALUES(CAST(? * 1000000 AS SIGNED INTEGER), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; + $sql = 'INSERT INTO `' . $this->prefix . 'entry`(id, guid, title, author, content, link, date, is_read, is_favorite, id_feed, tags) VALUES(CAST(? * 1000000 AS SIGNED INTEGER), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -242,7 +242,7 @@ class EntryDAO extends Model_pdo { } $set = substr ($set, 0, -2); - $sql = 'UPDATE ' . $this->prefix . 'entry SET ' . $set . ' WHERE id=?'; + $sql = 'UPDATE `' . $this->prefix . 'entry` SET ' . $set . ' WHERE id=?'; $stm = $this->bd->prepare ($sql); foreach ($valuesTmp as $v) { @@ -259,7 +259,7 @@ class EntryDAO extends Model_pdo { } }*/ public function markFavorite ($id, $is_favorite = true) { - $sql = 'UPDATE ' . $this->prefix . 'entry e ' + $sql = 'UPDATE `' . $this->prefix . 'entry` e ' . 'SET e.is_favorite = ? ' . 'WHERE e.id=?'; $values = array ($is_favorite ? 1 : 0, $id); @@ -273,7 +273,7 @@ class EntryDAO extends Model_pdo { } } public function markRead ($id, $is_read = true) { - $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id ' + $sql = 'UPDATE `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id ' . 'SET e.is_read = ?,' . 'f.cache_nbUnreads=f.cache_nbUnreads' . ($is_read ? '-' : '+') . '1 ' . 'WHERE e.id=?'; @@ -289,7 +289,7 @@ class EntryDAO extends Model_pdo { } public function markReadEntries ($idMax = 0) { if ($idMax === 0) { - $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id ' + $sql = 'UPDATE `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id ' . 'SET e.is_read = 1, f.cache_nbUnreads=0 ' . 'WHERE e.is_read = 0 AND f.priority > 0'; $stm = $this->bd->prepare ($sql); @@ -303,7 +303,7 @@ class EntryDAO extends Model_pdo { } else { $this->bd->beginTransaction (); - $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id ' + $sql = 'UPDATE `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id ' . 'SET e.is_read = 1 ' . 'WHERE e.is_read = 0 AND e.id <= ? AND f.priority > 0'; $values = array ($idMax); @@ -317,11 +317,11 @@ class EntryDAO extends Model_pdo { $affected = $stm->rowCount(); if ($affected > 0) { - $sql = 'UPDATE ' . $this->prefix . 'feed f ' + $sql = 'UPDATE `' . $this->prefix . 'feed` f ' . 'LEFT OUTER JOIN (' . 'SELECT e.id_feed, ' . 'COUNT(*) AS nbUnreads ' - . 'FROM ' . $this->prefix . 'entry e ' + . 'FROM `' . $this->prefix . 'entry` e ' . 'WHERE e.is_read = 0 ' . 'GROUP BY e.id_feed' . ') x ON x.id_feed=f.id ' @@ -341,7 +341,7 @@ class EntryDAO extends Model_pdo { } public function markReadCat ($id, $idMax = 0) { if ($idMax === 0) { - $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id ' + $sql = 'UPDATE `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id ' . 'SET e.is_read = 1, f.cache_nbUnreads=0 ' . 'WHERE f.category = ? AND e.is_read = 0'; $values = array ($id); @@ -356,7 +356,7 @@ class EntryDAO extends Model_pdo { } else { $this->bd->beginTransaction (); - $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id ' + $sql = 'UPDATE `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id ' . 'SET e.is_read = 1 ' . 'WHERE f.category = ? AND e.is_read = 0 AND e.id <= ?'; $values = array ($id, $idMax); @@ -370,11 +370,11 @@ class EntryDAO extends Model_pdo { $affected = $stm->rowCount(); if ($affected > 0) { - $sql = 'UPDATE ' . $this->prefix . 'feed f ' + $sql = 'UPDATE `' . $this->prefix . 'feed` f ' . 'LEFT OUTER JOIN (' . 'SELECT e.id_feed, ' . 'COUNT(*) AS nbUnreads ' - . 'FROM ' . $this->prefix . 'entry e ' + . 'FROM `' . $this->prefix . 'entry` e ' . 'WHERE e.is_read = 0 ' . 'GROUP BY e.id_feed' . ') x ON x.id_feed=f.id ' @@ -396,7 +396,7 @@ class EntryDAO extends Model_pdo { } public function markReadFeed ($id, $idMax = 0) { if ($idMax === 0) { - $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id ' + $sql = 'UPDATE `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id ' . 'SET e.is_read = 1, f.cache_nbUnreads=0 ' . 'WHERE f.id=? AND e.is_read = 0'; $values = array ($id); @@ -411,7 +411,7 @@ class EntryDAO extends Model_pdo { } else { $this->bd->beginTransaction (); - $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id ' + $sql = 'UPDATE `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id ' . 'SET e.is_read = 1 ' . 'WHERE f.id=? AND e.is_read = 0 AND e.id <= ?'; $values = array ($id, $idMax); @@ -425,7 +425,7 @@ class EntryDAO extends Model_pdo { $affected = $stm->rowCount(); if ($affected > 0) { - $sql = 'UPDATE ' . $this->prefix . 'feed f ' + $sql = 'UPDATE `' . $this->prefix . 'feed` f ' . 'SET f.cache_nbUnreads=f.cache_nbUnreads-' . $affected . ' WHERE f.id=?'; $values = array ($id); @@ -454,7 +454,7 @@ class EntryDAO extends Model_pdo { } $set = substr ($set, 0, -2); - $sql = 'UPDATE ' . $this->prefix . 'entry SET ' . $set; + $sql = 'UPDATE `' . $this->prefix . 'entry` SET ' . $set; $stm = $this->bd->prepare ($sql); foreach ($valuesTmp as $v) { @@ -471,7 +471,7 @@ class EntryDAO extends Model_pdo { }*/ public function cleanOldEntries ($date_min) { - $sql = 'DELETE e.* FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE e.id <= ? AND e.is_favorite = 0 AND f.keep_history = 0'; + $sql = 'DELETE e.* FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id WHERE e.id <= ? AND e.is_favorite = 0 AND f.keep_history = 0'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -489,7 +489,7 @@ class EntryDAO extends Model_pdo { public function searchByGuid ($feed_id, $id) { // un guid est unique pour un flux donné - $sql = 'SELECT * FROM ' . $this->prefix . 'entry WHERE id_feed=? AND guid=?'; + $sql = 'SELECT * FROM `' . $this->prefix . 'entry` WHERE id_feed=? AND guid=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -509,7 +509,7 @@ class EntryDAO extends Model_pdo { } public function searchById ($id) { - $sql = 'SELECT * FROM ' . $this->prefix . 'entry WHERE id=?'; + $sql = 'SELECT * FROM `' . $this->prefix . 'entry` WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -541,8 +541,8 @@ class EntryDAO extends Model_pdo { $order = ''; } - $sql = 'SELECT e.* FROM ' . $this->prefix . 'entry e' - . ' INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id' . $where + $sql = 'SELECT e.* FROM `' . $this->prefix . 'entry` e' + . ' INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id' . $where . ' ORDER BY e.id' . $order; if (empty($limitCount)) { @@ -571,7 +571,7 @@ class EntryDAO extends Model_pdo { } public function listLastGuidsByFeed($id, $n) { - $sql = 'SELECT guid FROM ' . $this->prefix . 'entry WHERE id_feed=? ORDER BY id DESC LIMIT ' . intval($n); + $sql = 'SELECT guid FROM `' . $this->prefix . 'entry` WHERE id_feed=? ORDER BY id DESC LIMIT ' . intval($n); $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); @@ -579,8 +579,8 @@ class EntryDAO extends Model_pdo { } public function countUnreadRead () { - $sql = 'SELECT COUNT(e.id) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE priority > 0' - . ' UNION SELECT COUNT(e.id) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE priority > 0 AND is_read = 0'; + $sql = 'SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id WHERE priority > 0' + . ' UNION SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id WHERE priority > 0 AND is_read = 0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_COLUMN, 0); @@ -589,7 +589,7 @@ class EntryDAO extends Model_pdo { return array('all' => $all, 'unread' => $unread, 'read' => $all - $unread); } public function count ($minPriority = null) { - $sql = 'SELECT COUNT(e.id) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id'; + $sql = 'SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id'; if ($minPriority !== null) { $sql = ' WHERE priority > ' . intval($minPriority); } @@ -599,7 +599,7 @@ class EntryDAO extends Model_pdo { return $res[0]; } public function countNotRead ($minPriority = null) { - $sql = 'SELECT COUNT(e.id) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE is_read = 0'; + $sql = 'SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed = f.id WHERE is_read = 0'; if ($minPriority !== null) { $sql = ' AND priority > ' . intval($minPriority); } @@ -610,8 +610,8 @@ class EntryDAO extends Model_pdo { } public function countUnreadReadFavorites () { - $sql = 'SELECT COUNT(id) FROM ' . $this->prefix . 'entry WHERE is_favorite=1' - . ' UNION SELECT COUNT(id) FROM ' . $this->prefix . 'entry WHERE is_favorite=1 AND is_read = 0'; + $sql = 'SELECT COUNT(id) FROM `' . $this->prefix . 'entry` WHERE is_favorite=1' + . ' UNION SELECT COUNT(id) FROM `' . $this->prefix . 'entry` WHERE is_favorite=1 AND is_read = 0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_COLUMN, 0); @@ -621,7 +621,7 @@ class EntryDAO extends Model_pdo { } public function optimizeTable() { - $sql = 'OPTIMIZE TABLE ' . $this->prefix . 'entry'; + $sql = 'OPTIMIZE TABLE `' . $this->prefix . 'entry`'; $stm = $this->bd->prepare ($sql); $stm->execute (); } diff --git a/app/models/Feed.php b/app/models/Feed.php index da1a029a8..5914b05f0 100644 --- a/app/models/Feed.php +++ b/app/models/Feed.php @@ -309,7 +309,7 @@ class Feed extends Model { class FeedDAO extends Model_pdo { public function addFeed ($valuesTmp) { - $sql = 'INSERT INTO ' . $this->prefix . 'feed (url, category, name, website, description, lastUpdate, priority, httpAuth, error, keep_history) VALUES(?, ?, ?, ?, ?, ?, 10, ?, 0, 0)'; + $sql = 'INSERT INTO `' . $this->prefix . 'feed` (url, category, name, website, description, lastUpdate, priority, httpAuth, error, keep_history) VALUES(?, ?, ?, ?, ?, ?, 10, ?, 0, 0)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -342,7 +342,7 @@ class FeedDAO extends Model_pdo { } $set = substr ($set, 0, -2); - $sql = 'UPDATE ' . $this->prefix . 'feed SET ' . $set . ' WHERE id=?'; + $sql = 'UPDATE `' . $this->prefix . 'feed` SET ' . $set . ' WHERE id=?'; $stm = $this->bd->prepare ($sql); foreach ($valuesTmp as $v) { @@ -360,9 +360,9 @@ class FeedDAO extends Model_pdo { } public function updateLastUpdate ($id, $inError = 0) { - $sql = 'UPDATE ' . $this->prefix . 'feed f ' //2 sub-requests with FOREIGN KEY(e.id_feed), INDEX(e.is_read) faster than 1 request with GROUP BY or CASE - . 'SET f.cache_nbEntries=(SELECT COUNT(e1.id) FROM ' . $this->prefix . 'entry e1 WHERE e1.id_feed=f.id),' - . 'f.cache_nbUnreads=(SELECT COUNT(e2.id) FROM ' . $this->prefix . 'entry e2 WHERE e2.id_feed=f.id AND e2.is_read=0),' + $sql = 'UPDATE `' . $this->prefix . 'feed` f ' //2 sub-requests with FOREIGN KEY(e.id_feed), INDEX(e.is_read) faster than 1 request with GROUP BY or CASE + . 'SET f.cache_nbEntries=(SELECT COUNT(e1.id) FROM `' . $this->prefix . 'entry` e1 WHERE e1.id_feed=f.id),' + . 'f.cache_nbUnreads=(SELECT COUNT(e2.id) FROM `' . $this->prefix . 'entry` e2 WHERE e2.id_feed=f.id AND e2.is_read=0),' . 'lastUpdate=?, error=? ' . 'WHERE f.id=?'; @@ -390,7 +390,7 @@ class FeedDAO extends Model_pdo { $newCat = $catDAO->getDefault (); } - $sql = 'UPDATE ' . $this->prefix . 'feed SET category=? WHERE category=?'; + $sql = 'UPDATE `' . $this->prefix . 'feed` SET category=? WHERE category=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -408,7 +408,7 @@ class FeedDAO extends Model_pdo { } public function deleteFeed ($id) { - $sql = 'DELETE FROM ' . $this->prefix . 'feed WHERE id=?'; + $sql = 'DELETE FROM `' . $this->prefix . 'feed` WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -422,7 +422,7 @@ class FeedDAO extends Model_pdo { } } public function deleteFeedByCategory ($id) { - $sql = 'DELETE FROM ' . $this->prefix . 'feed WHERE category=?'; + $sql = 'DELETE FROM `' . $this->prefix . 'feed` WHERE category=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -437,7 +437,7 @@ class FeedDAO extends Model_pdo { } public function searchById ($id) { - $sql = 'SELECT * FROM ' . $this->prefix . 'feed WHERE id=?'; + $sql = 'SELECT * FROM `' . $this->prefix . 'feed` WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -453,7 +453,7 @@ class FeedDAO extends Model_pdo { } } public function searchByUrl ($url) { - $sql = 'SELECT * FROM ' . $this->prefix . 'feed WHERE url=?'; + $sql = 'SELECT * FROM `' . $this->prefix . 'feed` WHERE url=?'; $stm = $this->bd->prepare ($sql); $values = array ($url); @@ -470,7 +470,7 @@ class FeedDAO extends Model_pdo { } public function listFeeds () { - $sql = 'SELECT * FROM ' . $this->prefix . 'feed ORDER BY name'; + $sql = 'SELECT * FROM `' . $this->prefix . 'feed` ORDER BY name'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -478,7 +478,7 @@ class FeedDAO extends Model_pdo { } public function listFeedsOrderUpdate () { - $sql = 'SELECT * FROM ' . $this->prefix . 'feed ORDER BY lastUpdate'; + $sql = 'SELECT * FROM `' . $this->prefix . 'feed` ORDER BY lastUpdate'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -486,7 +486,7 @@ class FeedDAO extends Model_pdo { } public function listByCategory ($cat) { - $sql = 'SELECT * FROM ' . $this->prefix . 'feed WHERE category=? ORDER BY name'; + $sql = 'SELECT * FROM `' . $this->prefix . 'feed` WHERE category=? ORDER BY name'; $stm = $this->bd->prepare ($sql); $values = array ($cat); @@ -497,7 +497,7 @@ class FeedDAO extends Model_pdo { } public function countEntries ($id) { - $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE id_feed=?'; + $sql = 'SELECT COUNT(*) AS count FROM `' . $this->prefix . 'entry` WHERE id_feed=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); @@ -506,7 +506,7 @@ class FeedDAO extends Model_pdo { return $res[0]['count']; } public function countNotRead ($id) { - $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE id_feed=? AND is_read=0'; + $sql = 'SELECT COUNT(*) AS count FROM `' . $this->prefix . 'entry` WHERE id_feed=? AND is_read=0'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); @@ -515,12 +515,12 @@ class FeedDAO extends Model_pdo { return $res[0]['count']; } public function updateCachedValues () { //For one single feed, call updateLastUpdate($id) - $sql = 'UPDATE ' . $this->prefix . 'feed f ' + $sql = 'UPDATE `' . $this->prefix . 'feed` f ' . 'INNER JOIN (' . 'SELECT e.id_feed, ' . 'COUNT(CASE WHEN e.is_read = 0 THEN 1 END) AS nbUnreads, ' . 'COUNT(e.id) AS nbEntries ' - . 'FROM ' . $this->prefix . 'entry e ' + . 'FROM `' . $this->prefix . 'entry` e ' . 'GROUP BY e.id_feed' . ') x ON x.id_feed=f.id ' . 'SET f.cache_nbEntries=x.nbEntries, f.cache_nbUnreads=x.nbUnreads'; -- cgit v1.2.3