Хелпер-обертка для INSERT на PDO

Mols

Новичок
grigori
тык я ж про другое.
Я про то, что в последнем предложенном варианте есть ограничение, которое не позволит подставить в качестве значения результат выполнения функции либо выражения.
Это нормально? Я считаю нет. Опять же это моё личное ИМХО.
Но я бы такое в фак не выкладывал (даже в тот, который про другое).
То, что это можно закодить в 2 строчки, это отдельный разговор.
Но это будет уже различный подход к решению одной задачи.
А на мой взгляд это не правильно.
 

Фанат

oncle terrible
Команда форума
grigori
не смешивай валидацию и типизацию.
валидация - для меня - это проверка соответствия данных логике приложения. к БД отношения не имеет.

типизация - другое дело. если она требуется для БД - ну да, надо что-то рисовать. можно расширить массив $fields для использования типов. тогда pdoset будет ее делать.

Mols
Ну, с одной стороны, ты прав. В факе все должно быть по правилам.
С другой стороны, что человек скажет, прочитав его? Вместо того чтобы по-быстрому прокрутить данные в цикле, надо долго и нудно сначала выписывать все поля в запросе, а потом еще и байндить. Вместо одной строчки - два экрана. И нафига тогда, спрашивается, ему эти препареды сдались?
Я не то чтобы спорю, я спрашиваю. Как поступить.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
*****, согласен, это несвязанные темы
pdoset не может делать типизацию, т.к. это идет через объект выражения
$sth->bindParam(1, $calories, PDO::pARAM_INT);


Mols
у новичка не бывает задач вроде "подставить в качестве значения результат выполнения функции либо выражения"

-~{}~ 04.10.10 13:30:

думаю, "просто и универсально" эта задача не решается
об этом умные люди пишут целые книги
 

Mols

Новичок
Ф а н а т
Ну если надо (точно надо?) именно кучу полей на два экрана совать в фак,
то можно конечно использовать любой вариант.
Только не забыть указать (желательно как нить выделить), что это сделано исключительно для уменьшения кода и на практике так делать низя, а как зя - не в этом факе ибо он про другое.
иначе врядли что выйдет потому как
Автор оригинала: grigori
думаю, "просто и универсально" эта задача не решается
Ну или если развить вот эту мысль
у новичка не бывает задач вроде "подставить в качестве значения результат выполнения функции либо выражения"
То можно написать в факе в начала "этот фак рассчитан на новичков, и кое-что (что именно Вы поймёте попозже, когда наступите на грабли) здесь сделано не совсем правильно." :D
 

BoBka-altRUist

Новичок
такая тупая ручная сборка, которая, тем не менее, позволяет довольно эффективно управляться с запросами на вставку/
Но ПДО, что удивительно(!), нам при этом УСЛОЖНЯЕТ задачу! :)
полностью поддерживаю, с плейсхолдерами тоже кстати вариант не особо, не наглядно, какой знак вопроса какой параметр вставляет.
тут вы приводите простые запросы, а что будет при вложенных mysql запросах?
 

Фанат

oncle terrible
Команда форума
а что будет при вложенных mysql запросах?
"Ты не мекай, ты руками покажи"
У тебя есть конкретный вложенный запрос, кот орый вызывает затруднения? Приноси - посмотрим, что можно сделать.
Нету? Тогда не надо бежать вперед паровоза. Решай проблемы по мере их поступления ;)
 
Сверху