Перевод запроса для использования Zend_Db_Select

Чтобы сделать это, используя только одну оболочку, а не по одной на каждый найденный файл (как использовалось в предыдущих ответах):

while IFS= read -r -d '' filename; do 
  outFile="$HOME/data/${filename%/*}.xml"
  mkdir -p -- "${outFile%/*}"
  cp -- "$filename" "$outFile"
done < <(find . -name 'config.xml' -print0)

Таким образом, ваш find испускает поток имен файлов, разделенный NUL, один по одному в цикле while read в родительской оболочке.

(Вы могли бы использовать "$HOME/data/$(dirname "$filename").xml", но с точки зрения производительности это действительно глупо: $() fork() отключено от подоболочки, а dirname - внешний исполняемый файл, который должен быть [ 117] 'd, связаны и загружены; нет смысла тратить все эти накладные расходы, когда вы можете просто выполнять строковые манипуляции внутри самой оболочки).

7
задан Ross 6 February 2009 в 12:37
поделиться

2 ответа

При получении от объекта таблицы оператор будет ограничен той таблицей, я думаю. Zend_Db_Table::select() методы возвращают a Zend_Db_Table_Select объект, который является подклассом Zend_Db_Select и вводит это ограничение. Попробуйте это вместо этого:

$db = Zend_Db::factory( ...options... );
$select = new Zend_Db_Select($adapter);
$select->from( 'my_table_name' )->join( ...

Если Вы предпочитаете, следующее должно быть эквивалентным:

$db = Zend_Db::factory( ...options... );
$db->select()->from( 'my_table_name' )->join( ...
9
ответ дан 6 December 2019 в 07:28
поделиться

Вы могли также все еще использовать традиционный $model-> выбор () объект путем добавления setIntegrityCheck (ложь), как так.

$select = $table->select()
->setIntegrityCheck(false)
->from(array('m' => 'memberships'), array('b.id', 'b.title', 'b.description'))
->join(array('b' => 'blogs'), 'b.id = m.blog_id')
->where('m.user_id = ?', (int) $id)
->order('m.created DESC')
->limit(0, 30);

Это отключает проверку, которая выдает исключение:

#0: Select query cannot join with another table
15
ответ дан 6 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: