* Fixed row count method pattern replacement

This commit is contained in:
nuxsmin
2015-03-04 19:35:47 +01:00
parent 66e333bb9e
commit ec1a5c8cdc
3 changed files with 12 additions and 12 deletions

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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);
}
/**