Клей и Mysql запросы

Статус
В этой теме нельзя размещать новые ответы.

JD

Новичок
Re: Клей и Mysql запросы

запрос собирать удобнее по частям в массив (а лучше класс) типа
PHP:
$select = array(
    'from'  => '',
    'where' => '',
    'group' => ''
);
а потом "клеить"
 

fixxxer

К.О.
Партнер клуба
а это он подглядел в говнодвижках типа инвижена

там якобы "абстракция"
 

pilot911

Новичок
согласен, это очень удобно, и, главное, быстро и переносимо на разные платформы БД

поскольку не присутствуют языковые конструкции и отсутствует парсинг под конкретный синтаксис БД
 

fixxxer

К.О.
Партнер клуба
минуту уже не могу понять, это шутка или нет? =)
 

Фанат

oncle terrible
Команда форума
"начинается" - это твой лепет.
ты видел хоть один проект, который был "быстро перенесен на другую бд"?
какое вообще отношение к этому мифическому переносу имеет эта бессмысленная сборка в массив, заменяющая сборку в строку?
 

pilot911

Новичок
Автор оригинала: *****
"начинается" - это твой лепет.
ты видел хоть один проект, который был "быстро перенесен на другую бд"?
какое вообще отношение к этому мифическому переносу имеет эта бессмысленная сборка в массив, заменяющая сборку в строку?
ну вот, нормальные вопросы пошли

проекты такие существуют, по работе приходилось сталкиваться с переносом на др БД, с mysql на mssql

сравни две записи:

PHP:
$connection->Execute("insert into table (id, firstname, lastname) values ($id, $firstname, $lastname)");
и

PHP:
$connection->exec_INSERTquery($table, array('id'=>$id, 'firstname'=>$firstname, 'lastname'=>$lastname));
по-моему, вторая посимпатичнее
 

fixxxer

К.О.
Партнер клуба
сравниваем. первое - сделано тупо в лоб, второе - взяли изначально правильную идею placeholder-ов и сделали все через жопу.
 

Фанат

oncle terrible
Команда форума
PHP:
$connection->Execute("INSERT into $table id='$id', 'firstname='$firstname', lastname='$lastname'");
и
$connection->exec_INSERTquery($table, array('id'=>$id, 'firstname'=>$firstname, 'lastname'=>$lastname));
сравнил.
практически идентично, просто во второй несколько лишних операторов.
при этом первая - законченная программа на языке SQL, стандартном языке, понятном ЛЮБОМУ разработчику, и представляющая собой практически законченное предложение на английском языке.
вторая - набор пропиертарных операторов, понятных только разработчику.
проекты такие существуют
приведи пример.
как ты переводил с mysql на mssql с помощью этого кода.
 

pilot911

Новичок
по-моему, сделали прекрасно

ни строчки синтаксиса языка БД... нужна другая бд - подключи другой драйвер с теми же интерфейсами и не парься
 

Фанат

oncle terrible
Команда форума
мальчик.
ты никогда так не делал, с драйвером.
поэтому помолчи, и никогда не выступай о вещах, в которых ничего не понимаешь.
 

pilot911

Новичок
Фана*т, я начинаю подозревать, что ты латентный п**рограммист

умерь свой пыл
 

fixxxer

К.О.
Партнер клуба
окей
у меня вот есть такое

select * from table
using index (entry_idx)
where user_id={user_id} and entry_id={entry_id} and entry_status='enabled' /* ENUM */
order by user_id
limit {limit} offset {offset}

и как это перенести на mssql магическим драйвером? ;)
 

Фанат

oncle terrible
Команда форума
не стоит так со мной разговаривать. ты мне не ровня.
я и так с трудом терплю тебя на форуме. скоро мое терпение кончится.
 

Wicked

Новичок
pilot911
а теперь придумай аналогии посимпатичнее для:
PHP:
$connection->Execute("INSERT_into_$table_values ('$rows[0][id]',_'$rows[0][firstname]', '$rows[0][lastname]'), ('$rows[1][id]', '$rows[1][firstname]', '$rows[1][lastname]')");
$connection->Execute("INSERT DELAYED IGNORE into $table ...");
$connection->Execute("INSERT into $table SELECT * FROM ...");
$connection->Execute("INSERT into $table ... ON DUPLICATE KEY UPDATE ...");
или для такого постгресовского запроса:
PHP:
$connection->Execute("INSERT into $table ... RETURNING *");
и будет тебе респект и уважение
 

pilot911

Новичок
универсальных ответов на все случаи жизни не придумаешь, ты прав

но упростить создание стандартных запросов все-таки имеет смысл
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху