]> git.mxchange.org Git - friendica.git/commitdiff
more robust cache api handling (was throwing errors on occasion)
authorfriendica <info@friendica.com>
Wed, 25 Jan 2012 01:04:49 +0000 (17:04 -0800)
committerfriendica <info@friendica.com>
Wed, 25 Jan 2012 01:04:49 +0000 (17:04 -0800)
include/cache.php

index 082974c61a907f8a42e593f88383dd586b585701..3c8a3f7138b4d7d5c1da52fe86ae99b62283bec8 100755 (executable)
@@ -5,7 +5,7 @@
         
        class Cache {
                public static function get($key){
-                       $r = q("SELECT `v` FROM `cache` WHERE `k`='%s'",
+                       $r = q("SELECT `v` FROM `cache` WHERE `k`='%s' limit 1",
                                dbesc($key)
                        );
                        
                }
                
                public static function set($key,$value) {
-                       q("INSERT INTO `cache` VALUES ('%s','%s','%s')",
-                               dbesc($key),
-                               dbesc($value),
-                               dbesc(datetime_convert()));
+                       $r = q("SELECT * FROM `cache` WHERE `k`='%s' limit 1",
+                               dbesc($key)
+                       );
+                       if(count($r)) {
+                               q("UPDATE `cache` SET `v` = '%s', `updated = '%s' WHERE `k` = '%s' limit 1",
+                                       dbesc($value),
+                                       dbesc(datetime_convert()),
+                                       dbesc($key));
+                       }
+                       else {
+                               q("INSERT INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')",
+                                       dbesc($key),
+                                       dbesc($value),
+                                       dbesc(datetime_convert()));
+                       }
                }
                
                public static function clear(){