Don't use non-portable LIMIT syntax, use db abstraction methods.
authorMichael J. Rubinsky <mrubinsk@horde.org>
Wed, 28 Jul 2010 05:47:37 +0000 (01:47 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Wed, 28 Jul 2010 05:48:47 +0000 (01:48 -0400)
ansel/lib/Storage.php
ansel/lib/Tags.php
content/lib/Tagger.php
imp/lib/Sentmail/Sql.php
news/lib/Driver/sql.php

index 7feca5a..f59da14 100644 (file)
@@ -728,7 +728,10 @@ class Ansel_Storage
             return array();
         }
 
-        $sql .= ' ORDER BY image_uploaded_date DESC LIMIT ' . (int)$limit;
+        $sql .= ' ORDER BY image_uploaded_date DESC';
+        if ($limit > 0) {
+            $GLOBALS['ansel_db']->setLimit((int)$limit);
+        }
         $query = $this->_db->prepare($sql);
         if ($query instanceof PEAR_Error) {
            throw new Ansel_Exception($query);
index 5783765..8d8a004 100644 (file)
@@ -151,8 +151,9 @@ class Ansel_Tags
         }
         $sql .= 'GROUP BY tn.tag_id, tag_name ORDER BY total DESC';
         if ($limit > 0) {
-            $sql .= ' LIMIT ' . (int)$limit;
+            $GLOBALS['ansel_db']->setLimit((int)$limit);
         }
+
         $results = $GLOBALS['ansel_db']->queryAll($sql, null, MDB2_FETCHMODE_ASSOC, true);
         foreach ($results as $id => $taginfo) {
             $results[$id]['tag_name'] = Horde_String::convertCharset(
index 901604d..102b01e 100644 (file)
@@ -496,11 +496,10 @@ class Content_Tagger
             WHERE tags.tag IN ($tagList)
             GROUP BY matches.object_id
             HAVING num_common_tags >= $threshold
-            ORDER BY num_common_tags DESC
-            LIMIT 0, $max_objects
-            ";
+            ORDER BY num_common_tags DESC";
 
-        $rs = $db->Execute($sql) or die("Syntax Error: $sql, Error: " . $db->ErrorMsg());
+        $this->_db->addLimitOffset($sql, array('limit' => $max_objects));
+        $rs = $this->_db->Execute($sql) or die("Syntax Error: $sql, Error: " . $this->_db->ErrorMsg());
         while (!$rs->EOF) {
             $retarr[] = array (
                 'object_id' => $rs->fields['object_id'],
@@ -509,7 +508,7 @@ class Content_Tagger
             $rs->MoveNext();
         }
 
-        return $retarra;
+        return $retarr;
     }
 
     /**
index 2301d4e..82157c6 100644 (file)
@@ -115,14 +115,14 @@ class IMP_Sentmail_Sql extends IMP_Sentmail_Driver
                              implode(', ', $filter));
         }
 
-        $query = sprintf('SELECT sentmail_recipient, count(*) AS sentmail_count FROM %s WHERE sentmail_who = %s AND sentmail_success = 1%s GROUP BY sentmail_recipient ORDER BY sentmail_count DESC LIMIT %d',
+        $query = sprintf('SELECT sentmail_recipient, count(*) AS sentmail_count FROM %s WHERE sentmail_who = %s AND sentmail_success = 1%s GROUP BY sentmail_recipient ORDER BY sentmail_count DESC',
                          $this->_params['table'],
                          $this->_db->quote($GLOBALS['registry']->getAuth()),
-                         $where,
-                         $limit);
+                         $where);
 
         /* Execute the query. */
         try {
+            $this->_db->addLimitOffset($sql, array('limit' => $limit));
             return $this->_db->selectValues($query);
         } catch (Horde_Db_Exception $e) {
             throw new IMP_Exception($e);
index c694df5..6c6d755 100644 (file)
@@ -588,7 +588,7 @@ class News_Driver_sql extends News_Driver {
                . $this->prefix . ' AS n WHERE l.lang = ? AND n.id = l.id AND n.status = ? ORDER BY n.publish DESC LIMIT 0, '
                . ($minimize ? '100' : '500');
 
-        $result = $this->db->query($sql, array($GLOBALS['registry']->preferredLang(), News::CONFIRMED));
+        $result = $this->db->limitQuery($sql, 0, ($minimize ? '100' : '500'), array($GLOBALS['registry']->preferredLang(), News::CONFIRMED));
         if ($result instanceof PEAR_Error) {
             return $result;
         }