Example #1
0
 /**
  * Метод выполняет удаление данных из бд, которые удовлетворяют условиям запроса.
  *
  * @param int $indexId Идентификтор индекса, который должен быть использован при удалении.
  * @param array $query Условия, которым должен удовлетворять искомый элемент. Передается в виде массива вида:
  * array(<operation> => <value>|<array(<values>)>) в зависимости от того простой или составной индекс.
  * @param array $limit Массив со значениями лимита и оффсета выборки. Передается в виде: array(<limit>, <offset>).
  * @param array $options Массив опций, которые должны быть применены в выборке.
  * @return bool Результат выполнения запроса.
  * @throws Ext_HandlerSocket_Driver_Exception  Будет выброшено в следующих случаях:
  * 1. Идентификатор индекса передан не в виде целого числа или число отрицательное. Код INVALID_INDEX_ID.
  * 2. Опции открытия индекса переданы не в массиве. Код INVALID_OPTIONS.
  * 3. Лимит выборки передан не в виде массива или в виде неверного массива. Код INVALID_QUERY_LIMIT.
  * 4. Условия запроса переданы не в виде массива. Код INVALID_QUERY.
  */
 public function delete($indexId, $query, $limit = array(1, 0), $options = array())
 {
     $request = Ext_HandlerSocket_Driver_RequestAbstract::factory('delete')->setIndexId($indexId)->setQuery($query)->setLimit($limit);
     if (isset($options['in'])) {
         $request->setIn($options['in']);
     }
     if (isset($options['filter'])) {
         $request->setFilter($options['filter']);
     }
     if (isset($options['while'])) {
         $request->setWhile($options['while']);
     }
     $result = $this->_sendWriteRequest((string) $request);
     if ($result['errorCode'] === 0 && isset($result['columns'][0]) && isset($result['columns'][0][0])) {
         return (bool) $result['columns'][0][0];
     } else {
         return false;
     }
 }
Example #2
0
 public static function setRequestNamespace($requestNamespace)
 {
     self::$_requestNamespace = $requestNamespace;
 }