]> source.dussan.org Git - nextcloud-server.git/commitdiff
Get rid of the SELECT query. Try UPDATE, on failure INSERT.
authorAndreas Fischer <bantu@owncloud.com>
Thu, 31 Oct 2013 14:44:19 +0000 (15:44 +0100)
committertomneedham <tom@owncloud.com>
Tue, 18 Feb 2014 17:20:10 +0000 (17:20 +0000)
lib/ocs/privatedata.php

index 2c53d576092cfcf645300c042e63b74e1149d479..932413711b8b8674573285d62e6877562d85cc64 100644 (file)
@@ -69,18 +69,14 @@ class OC_OCS_Privatedata {
                $key = addslashes(strip_tags($parameters['key']));
                $value = OC_OCS::readData('post', 'value', 'text');
 
-               // check if key is already set
-               $query = \OCP\DB::prepare('SELECT `value`  FROM `*PREFIX*privatedata` WHERE `user` = ? AND `app` = ? AND `key` = ? ');
-               $result = $query->execute(array($user, $app, $key));
+               // update in DB
+               $query = \OCP\DB::prepare('UPDATE `*PREFIX*privatedata` SET `value` = ?  WHERE `user` = ? AND `app` = ? AND `key` = ?');
+               $numRows = $query->execute(array($value, $user, $app, $key));
                 
-        if ($result->numRows()==0) {
+               if ($numRows === false || $numRows === 0) {
                        // store in DB
                        $query = \OCP\DB::prepare('INSERT INTO `*PREFIX*privatedata` (`user`, `app`, `key`, `value`)' . ' VALUES(?, ?, ?, ?)');
                        $query->execute(array($user, $app, $key, $value));
-               } else {
-                       // update in DB
-                       $query = \OCP\DB::prepare('UPDATE `*PREFIX*privatedata` SET `value` = ?  WHERE `user` = ? AND `app` = ? AND `key` = ? ');
-                       $query->execute(array($value, $user, $app, $key ));
                }
 
                return new OC_OCS_Result(null, 100);