Существует ли способ сделать этот взгляд немного лучше?
conn.exec 'select attr1, attr2, attr3, attr4, attr5, attr6, attr7 ' +
'from table1, table2, table3, etc, etc, etc, etc, etc, ' +
'where etc etc etc etc etc etc etc etc etc etc etc etc etc'
Как, там способ подразумевать конкатенацию?
Как вы уже читали, для многострочных строк существует несколько синтаксисов. Мне больше всего нравится стиль Perl:
conn.exec %q{select attr1, attr2, attr3, attr4, attr5, attr6, attr7
from table1, table2, table3, etc, etc, etc, etc, etc,
where etc etc etc etc etc etc etc etc etc etc etc etc etc}
Многострочная строка начинается с% q, за которым следует {, [или (, а затем заканчивается соответствующим перевернутым символом.% Q не допускает интерполяцию;% Q делает так, что вы могут писать такие вещи:
conn.exec %Q{select attr1, attr2, attr3, attr4, attr5, attr6, attr7
from #{table_names},
where etc etc etc etc etc etc etc etc etc etc etc etc etc}
На самом деле я понятия не имею, как называются эти типы многострочных строк, поэтому давайте просто назовем их Perl Multilines.
Однако обратите внимание, используете ли вы Perl Multilines или heredocs, как у Марка и Питера предложено, вы получите потенциально ненужные пробелы. Как в моих примерах, так и в их примерах, строки "from" и "where" содержат ведущие пробелы из-за их отступа в коде. Если этот пробел нежелателен, вы должны использовать конкатенированные строки, как вы это делаете сейчас.
О да codeigniter хороший, а также имеет поддержку для многих библиотек, пожалуйста, посмотрите здесь
http://www.haughin.com/code/
Включите службу Amazon, например $ this- > load- > library ('s3');
Можно использовать генератор кода для создания вариантов кода с помощью шаблона. В этом случае источник Java является продуктом генератора, а реальный код - шаблоном.
-121--880937-conn.exec [
"select attr1, attr2, attr3, ...",
"from table1, table2, table3, ...",
"where ..."
].join(' ')
Это предложение имеет преимущество перед здесь-документами и длинными последовательностями, что автоинденторы могут соответствующим образом отступить каждую часть последовательности. Но это происходит за счет эффективности.
conn.exec = <<eos
select attr1, attr2, attr3, attr4, attr5, attr6, attr7
from table1, table2, table3, etc, etc, etc, etc, etc,
where etc etc etc etc etc etc etc etc etc etc etc etc etc
eos
Да, если вы не возражаете против вставки дополнительных новых строк:
conn.exec 'select attr1, attr2, attr3, attr4, attr5, attr6, attr7
from table1, table2, table3, etc, etc, etc, etc, etc,
where etc etc etc etc etc etc etc etc etc etc etc etc etc'
В качестве альтернативы вы можете использовать heredoc:
conn.exec <<-eos
select attr1, attr2, attr3, attr4, attr5, attr6, attr7
from table1, table2, table3, etc, etc, etc, etc, etc,
where etc etc etc etc etc etc etc etc etc etc etc etc etc
eos
conn.exec 'select attr1, attr2, attr3, attr4, attr5, attr6, attr7 ' <<
'from table1, table2, table3, etc, etc, etc, etc, etc, ' <<
'where etc etc etc etc etc etc etc etc etc etc etc etc etc'
<< является оператором конкатенации для строк