From ec1a5c8cdc4fd7d92f651ef89d702678f662ac26 Mon Sep 17 00:00:00 2001 From: nuxsmin Date: Wed, 4 Mar 2015 19:35:47 +0100 Subject: [PATCH] * Fixed row count method pattern replacement --- inc/category.class.php | 6 +++--- inc/db.class.php | 13 +++++++------ inc/migrate.class.php | 5 ++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/inc/category.class.php b/inc/category.class.php index 10bdc14a..1f757e11 100644 --- a/inc/category.class.php +++ b/inc/category.class.php @@ -287,9 +287,9 @@ class SP_Category $data['id'] = $id; - $db = new DB(); - $db->setParamData($data); - return $db->getFullRowCount($query); + DB::getQuery($query, __FUNCTION__, $data); + + return DB::$last_num_rows; } } diff --git a/inc/db.class.php b/inc/db.class.php index 4b7dfdfa..7819dd34 100644 --- a/inc/db.class.php +++ b/inc/db.class.php @@ -353,14 +353,18 @@ class DB * @return int NĂºmero de files de la consulta * @throws SPDatabaseException */ - public function getFullRowCount(&$query) + private function getFullRowCount(&$query) { if (empty($query)) { return 0; } - $patterns = array('/(LIMIT|ORDER BY).*/i', '/SELECT.*FROM/i'); - $replace = array('', 'SELECT COUNT(*) FROM'); + $patterns = array( + '/(LIMIT|ORDER BY|GROUP BY).*/i', + '/SELECT DISTINCT\s([\w_]+),.* FROM/i', + '/SELECT [\w_]+,.* FROM/i' + ); + $replace = array('','SELECT COUNT(DISTINCT \1) FROM', 'SELECT COUNT(*) FROM'); $query = preg_replace($patterns, $replace, $query); @@ -376,9 +380,6 @@ class DB } } - // FIXME - //error_log("numrows: " . $num); - $queryRes->closeCursor(); return $num; diff --git a/inc/migrate.class.php b/inc/migrate.class.php index d5bd4632..2593d4eb 100644 --- a/inc/migrate.class.php +++ b/inc/migrate.class.php @@ -265,10 +265,9 @@ class SP_Migrate $data['id'] = $currentUserId; - $db = new DB(); - $db->setParamData($data); + DB::getQuery($query, __FUNCTION__, $data); - return ($db->getFullRowCount($query) === 0); + return (DB::$last_num_rows === 0); } /**