X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FMemcached_DataObject.php;h=3de7c16d9bf6d1f2c338a29604e0fd6a20c4021a;hb=c12bb0ab6a2dbfc36113e5d45114a7e1671ff018;hp=91b986891cea53aa6a74ee04f3c0512f2e047ba6;hpb=ad7cd155fbc643c9b873415d542745bb79c4e239;p=quix0rs-gnu-social.git diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 91b986891c..3de7c16d9b 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -67,14 +67,15 @@ 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; - // php-compatible, for settype(), datatype + // PHP compatible datatype for settype() below $colType = $obj->columnType($keyCol); if (!in_array($colType, array('integer', 'int'))) { @@ -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 @@ -461,11 +470,11 @@ class Memcached_DataObject extends Safe_DataObject } global $_DB_DATAOBJECT; - if (!isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"])) { + if (!isset($_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()."__keys"])) { $this->databaseStructure(); } - return $_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"]; + return $_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()."__keys"]; } function encache() @@ -824,7 +833,7 @@ class Memcached_DataObject extends Safe_DataObject global $_DB_DATAOBJECT; if (empty($_DB_DATAOBJECT['CONFIG'])) { - DB_DataObject::_loadConfig(); + self::_loadConfig(); } $options = &$_DB_DATAOBJECT['CONFIG']; @@ -836,7 +845,7 @@ class Memcached_DataObject extends Safe_DataObject if (!$dsn) { if (!$this->_database) { - $this->_database = isset($options["table_{$this->__table}"]) ? $options["table_{$this->__table}"] : null; + $this->_database = isset($options["table_{$this->tableName()}"]) ? $options["table_{$this->tableName()}"] : null; } if ($this->_database && !empty($options["database_{$this->_database}"])) {