From 37f9e037725de58bd9b611fff759f7d12cc6ee5a Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind1991@gmail.com>
Date: Sun, 19 Jun 2011 22:34:04 +0200
Subject: [PATCH] improved check in oc_preferences if a key already exists

---
 lib/preferences.php | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/lib/preferences.php b/lib/preferences.php
index 5a9ed39508..0f4636f683 100644
--- a/lib/preferences.php
+++ b/lib/preferences.php
@@ -139,10 +139,12 @@ class OC_PREFERENCES{
 	 */
 	public static function setValue( $user, $app, $key, $value ){
 		// Check if the key does exist
-		$exists = self::getValue( $user, $app, $key, null );
+		$query = OC_DB::prepare( 'SELECT configvalue FROM *PREFIX*preferences WHERE userid = ? AND appid = ? AND configkey = ?' );
+		$values=$query->execute(array($user,$app,$key))->fetchAll();
+		error_log(print_r($values,true));
+		$exists=(count($values)>0);
 
-		// null: does not exist. Insert.
-		if( is_null( $exists )){
+		if( !$exists ){
 			$query = OC_DB::prepare( 'INSERT INTO *PREFIX*preferences ( userid, appid, configkey, configvalue ) VALUES( ?, ?, ?, ? )' );
 			$query->execute( array( $user, $app, $key, $value ));
 		}
-- 
GitLab