From: Michael J. Rubinsky Date: Wed, 28 Jul 2010 05:47:37 +0000 (-0400) Subject: Don't use non-portable LIMIT syntax, use db abstraction methods. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=9f2228151ca44692782d475bf7b5737a590b2702;p=horde.git Don't use non-portable LIMIT syntax, use db abstraction methods. --- diff --git a/ansel/lib/Storage.php b/ansel/lib/Storage.php index 7feca5ab1..f59da143f 100644 --- a/ansel/lib/Storage.php +++ b/ansel/lib/Storage.php @@ -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); diff --git a/ansel/lib/Tags.php b/ansel/lib/Tags.php index 578376523..8d8a00409 100644 --- a/ansel/lib/Tags.php +++ b/ansel/lib/Tags.php @@ -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( diff --git a/content/lib/Tagger.php b/content/lib/Tagger.php index 901604df5..102b01efc 100644 --- a/content/lib/Tagger.php +++ b/content/lib/Tagger.php @@ -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; } /** diff --git a/imp/lib/Sentmail/Sql.php b/imp/lib/Sentmail/Sql.php index 2301d4e48..82157c616 100644 --- a/imp/lib/Sentmail/Sql.php +++ b/imp/lib/Sentmail/Sql.php @@ -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); diff --git a/news/lib/Driver/sql.php b/news/lib/Driver/sql.php index c694df560..6c6d755b6 100644 --- a/news/lib/Driver/sql.php +++ b/news/lib/Driver/sql.php @@ -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; }