]> git.mxchange.org Git - friendica.git/blobdiff - include/cache.php
finish dipsy light colour fixes
[friendica.git] / include / cache.php
index 082974c61a907f8a42e593f88383dd586b585701..360c4acbdbadd285225f848149a3d2c778bc8576 100644 (file)
@@ -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()));
+
+                       q("REPLACE INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')",
+                                       dbesc($key),
+                                       dbesc($value),
+                                       dbesc(datetime_convert()));
                }
+
+               
+/* 
+ *
+ * Leaving this legacy code temporaily to see how REPLACE fares 
+ * as opposed to non-atomic checks when faced with fast moving key duplication.
+ * As a MySQL extension it isn't portable, but we're not yet very portable.
+ */
+
+/*
+ *                     $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(){
                        q("DELETE FROM `cache` WHERE `updated` < '%s'",