]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Not really necessary in practice but makes better queries
authorMikael Nordfeldth <mmn@hethane.se>
Wed, 23 Mar 2016 16:51:13 +0000 (17:51 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Wed, 23 Mar 2016 16:51:13 +0000 (17:51 +0100)
classes/Memcached_DataObject.php

index 41ce715210bec85bcf8f4cf314475a99a34c084c..3de7c16d9bf6d1f2c338a29604e0fd6a20c4021a 100644 (file)
@@ -67,10 +67,11 @@ class Memcached_DataObject extends Safe_DataObject
      * @param string  $cls       Class to fetch
      * @param string  $keyCol    name of column for key
      * @param array   $keyVals   key values to fetch
+     * @param boolean $skipNulls skip provided null values
      *
      * @return array Array of objects, in order
      */
-    static function multiGetClass($cls, $keyCol, array $keyVals)
+    static function multiGetClass($cls, $keyCol, array $keyVals, $skipNulls=true)
     {
         $obj = new $cls;
 
@@ -83,6 +84,14 @@ class Memcached_DataObject extends Safe_DataObject
             throw new ServerException('Cannot do multiGet on anything but integer columns');
         }
 
+        if ($skipNulls) {
+            foreach ($keyVals as $key=>$val) {
+                if (is_null($val)) {
+                    unset($keyVals[$key]);
+                }
+            }
+        }
+
         $obj->whereAddIn($keyCol, $keyVals, $colType);
 
         // Since we're inputting straight to a query: format and escape