]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
fixed a postgresql-related bug, more database functions secured and add an exception...
authorThomas Citharel <tcit@tcit.fr>
Sat, 18 Jul 2015 10:01:26 +0000 (12:01 +0200)
committerThomas Citharel <tcit@tcit.fr>
Sat, 18 Jul 2015 10:01:26 +0000 (12:01 +0200)
inc/poche/Database.class.php
install/index.php

index 3b1f0af2c8e4a961184f4a4877b8ff48092723af..7ec1602db48d869c6d35c16a5c0e6a4f23c53fe6 100755 (executable)
@@ -454,20 +454,28 @@ class Database {
 
     public function getPreviousArticle($id, $user_id) 
     {
-        $sql = "SELECT id FROM entries WHERE id = (SELECT max(id) FROM entries WHERE id < ? AND is_read=0) AND user_id=? AND is_read=0";
+        $sqlcondition = "is_read=0";
+        if (STORAGE == 'postgres') {
+            $sqlcondition = "is_read=false";
+        }
+        $sql = "SELECT id FROM entries WHERE id = (SELECT max(id) FROM entries WHERE id < ? AND " . $sqlcondition . ") AND user_id=? AND " . $sqlcondition;
         $params = array($id, $user_id);
         $query = $this->executeQuery($sql, $params);
-        $id_entry = $query->fetchAll();
+        $id_entry = ($query) ? $query->fetchAll() : false;
         $id = ($query) ? $id_entry[0][0] : false;
         return $id;
     }
 
     public function getNextArticle($id, $user_id) 
     {
-        $sql = "SELECT id FROM entries WHERE id = (SELECT min(id) FROM entries WHERE id > ? AND is_read=0) AND user_id=? AND is_read=0";
+        $sqlcondition = "is_read=0";
+        if (STORAGE == 'postgres') {
+            $sqlcondition = "is_read=false";
+        }
+        $sql = "SELECT id FROM entries WHERE id = (SELECT min(id) FROM entries WHERE id > ? AND " . $sqlcondition . ") AND user_id=? AND " . $sqlcondition;
         $params = array($id, $user_id);
         $query = $this->executeQuery($sql, $params);
-        $id_entry = $query->fetchAll();
+        $id_entry = ($query) ? $query->fetchAll() : false;
         $id = ($query) ? $id_entry[0][0] : false;
         return $id;
     }
index bb3510952414a9f6346ed97d76e5221b186f3043..ea5d7d472da7758f233adcc996ca65d6fd3c150c 100755 (executable)
@@ -94,10 +94,14 @@ else if (isset($_POST['install'])) {
                 $errors[] = 'Impossible to create the SQLite database file. Please check your file permissions.';
             }
             else {
-                $db_path = 'sqlite:' . realpath('') . '/db/poche.sqlite';
-                $handle = new PDO($db_path);
-                $handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-                $sql_structure = "";
+                try {
+                    $db_path = 'sqlite:' . realpath('') . '/db/poche.sqlite';
+                    $handle = new PDO($db_path);
+                    $handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+                    $sql_structure = "";
+                } catch (PDOException $e) {
+                    $errors[] = "SQLite has encountered an issue : " . $e->getMessage();
+                }
             }
         } else {
             // MySQL and Postgre