Exemple #1
0
 public function execute()
 {
     $cache_key = MemoryObjectStore::gen_key(array($this->build_sql(), $this->build_sql_values()));
     if (!$this->reload) {
         $cache = MemoryObjectStore::get($cache_key);
     }
     if (!empty($cache)) {
         return $cache;
     } else {
         $result = parent::execute();
         if (is_array($result)) {
             foreach ($result as $result_key => $result_val) {
                 foreach ($this->additions as $key => $val) {
                     $result[$result_key]->{$key} = $val;
                 }
             }
         } else {
             foreach ($this->additions as $key => $val) {
                 $result->{$key} = $val;
             }
         }
         MemoryObjectStore::put($cache_key, $result);
     }
     return $result;
 }
 /**
  * Finishes the query.
  *
  * Adds tags, metaData, range and returns the requested list or count.
  *
  * @param SelectQuery $select_query
  * A SelectQuery which has entity_type, entity_id, revision_id and bundle
  * fields added.
  * @param $id_key
  * Which field's values to use as the returned array keys.
  *
  * @return
  * See EntityFieldQuery::execute().
  */
 function finishQuery($select_query, $id_key = 'entity_id')
 {
     foreach ($this->tags as $tag) {
         $select_query->addTag($tag);
     }
     foreach ($this->metaData as $key => $object) {
         $select_query->addMetaData($key, $object);
     }
     $select_query->addMetaData('entity_field_query', $this);
     if ($this->range) {
         $select_query->range($this->range['start'], $this->range['length']);
     }
     if ($this->count) {
         return $select_query->countQuery()->execute()->fetchField();
     }
     $return = array();
     foreach ($this->fields as $key => $field) {
         if ('field_sql_storage' == $field['storage']['type']) {
             foreach ($select_query->conditions() as $condition) {
                 if (is_array($condition) && array_key_exists('field', $condition) && strpos($condition['field'], 'field_data_' . $field['field_name'] . $key . '.') === 0) {
                     list($table_alias, $column) = explode('.', $condition['field']);
                     $select_query->addField($table_alias, $column, $field['field_name']);
                     break;
                 }
             }
         }
     }
     $this->orderedResults = array();
     foreach ($select_query->execute() as $partial_entity) {
         $bundle = isset($partial_entity->bundle) ? $partial_entity->bundle : NULL;
         $entity = entity_create_stub_entity($partial_entity->entity_type, array($partial_entity->entity_id, $partial_entity->revision_id, $bundle));
         $return[$partial_entity->entity_type][$partial_entity->{$id_key}] = $entity;
         $this->orderedResults[] = $partial_entity;
     }
     return $return;
 }
Exemple #3
0
 /**
  * @return string
  */
 public function execute()
 {
     self::debug(['SQL query is: %s'], [trim(str_replace("\n", ' ', $this->query))]);
     return $this->query->execute()->fetchField();
 }
Exemple #4
0
 public function execute()
 {
     return $this->selectQuery->execute()->fetchObject();
 }
Exemple #5
0
 public function exec($q, $p = array())
 {
     $query = new SelectQuery($this, null, $q, $p);
     if ($query->execute()) {
         return true;
     } else {
         return false;
     }
 }