From 5e3ecbbf96ff0268220a85aaef3c99c84e13ab44 Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind1991@gmail.com>
Date: Sat, 17 Sep 2011 02:36:04 +0200
Subject: [PATCH] dont use numRows when it's not needed since it can be
 expensive

---
 lib/appconfig.php      | 10 ++++------
 lib/group/database.php |  2 +-
 lib/preferences.php    | 11 +++++------
 lib/user/database.php  |  4 ++--
 4 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/lib/appconfig.php b/lib/appconfig.php
index c64a15b893..392782b258 100644
--- a/lib/appconfig.php
+++ b/lib/appconfig.php
@@ -93,14 +93,12 @@ class OC_Appconfig{
 		// At least some magic in here :-)
 		$query = OC_DB::prepare( 'SELECT configvalue FROM *PREFIX*appconfig WHERE appid = ? AND configkey = ?' );
 		$result = $query->execute( array( $app, $key ));
-
-		if( !$result->numRows()){
+		$row = $result->fetchRow();
+		if($row){
+			return $row["configvalue"];
+		}else{
 			return $default;
 		}
-
-		$row = $result->fetchRow();
-
-		return $row["configvalue"];
 	}
 
 	/**
diff --git a/lib/group/database.php b/lib/group/database.php
index 8a9fc53d39..7bf9c8bb5c 100644
--- a/lib/group/database.php
+++ b/lib/group/database.php
@@ -56,7 +56,7 @@ class OC_Group_Database extends OC_Group_Backend {
 		$query = OC_DB::prepare( "SELECT gid FROM `*PREFIX*groups` WHERE gid = ?" );
 		$result = $query->execute( array( $gid ));
 
-		if( $result->numRows() > 0 ){
+		if( !$result->fetchRow() ){
 			// Can not add an existing group
 			return false;
 		}
diff --git a/lib/preferences.php b/lib/preferences.php
index d53cdd538e..5af007f022 100644
--- a/lib/preferences.php
+++ b/lib/preferences.php
@@ -116,14 +116,13 @@ class OC_Preferences{
 		// Try to fetch the value, return default if not exists.
 		$query = OC_DB::prepare( 'SELECT configvalue FROM *PREFIX*preferences WHERE userid = ? AND appid = ? AND configkey = ?' );
 		$result = $query->execute( array( $user, $app, $key ));
-
-		if( !$result->numRows()){
+		
+		$row = $result->fetchRow();
+		if($row){
+			return $row["configvalue"];
+		}else{
 			return $default;
 		}
-
-		$row = $result->fetchRow();
-
-		return $row["configvalue"];
 	}
 
 	/**
diff --git a/lib/user/database.php b/lib/user/database.php
index f29aaf00f0..452709c1fb 100644
--- a/lib/user/database.php
+++ b/lib/user/database.php
@@ -106,8 +106,8 @@ class OC_User_Database extends OC_User_Backend {
 		$query = OC_DB::prepare( "SELECT uid FROM *PREFIX*users WHERE uid LIKE ? AND password = ?" );
 		$result = $query->execute( array( $uid, sha1( $password )));
 
-		if( $result->numRows() > 0 ){
-			$row=$result->fetchRow();
+		$row=$result->fetchRow();
+		if($row){
 			return $row['uid'];
 		}else{
 			return false;
-- 
GitLab