Какой формат именованного типизованного плейсхолдера выбрать?

hell0w0rd

Продвинутый новичок
grigori
Absinthe написал(а):
В одном запросе может применяться одно значение несколько раз.
И чтобы его несколько раз не биндить, нужны именованные плейсхолдеры.

Более того при сложных запросах (> 20 строк) сложно уследить за порядком неименованных.
PS только я вот понять не могу... PDO использующие постоянные соединения - за которых сервер держит соединение, или как?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
в других расширениях - mysql, pg_sql, и т.д. была возможность открывать постоянные соединения, опять же, читайте в документации,
в pdo_mysql этого нет
 

MiksIr

miksir@home:~$
А PDO::ATTR_PERSISTENT разве не они? И вроде в mysql поддерживались
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
да оно, я даже не искал его на самом деле
от постоянных соединений большинство давно уже отказалось - проблемы больше, чем выгода,
вообще, константы PDO, эта куча магических заклинаний - пример неудачного интерфейса
 

Absinthe

жожо
Слушай, а покажи, а? можно в личку. Я думал отэкстендить пдошечку, добавив в нее поддержку типизованных плейсхолдеров (правда, ценой перменентного включения режима эмуляции)
Я только сам PDO расширял, без Statement.
Но в любом случае придется самому подстановку делать, после чего уже вызывать PDO для готового запроса.
Но плюсы расширения pdo огромны: не придется менять интерфейс.

от постоянных соединений большинство давно уже отказалось - проблемы больше, чем выгода,
Кстати говоря, а как правильней делать, если у нас однопоточный сервер и зачачи простые? Держать пул соединений или на каждые 2 запроса делать новое?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
как правильней делать, если у нас однопоточный сервер и зачачи простые? Держать пул соединений или на каждые 2 запроса делать новое?
зачем вообще что-то делать? время соединения с MySQL в mysqlnd уменьшилось по сравнению со старой либой, и оптимизации на простых задачах не требуется
 

fixxxer

К.О.
Партнер клуба
надо чтобы класс наследовался от PDOStatement, иначе он не пройдет по typehinting
Program to an interface, not an implementation

Жесть какая. Вообще писатели PDO явно не думали о том, что их библиотеку будет кто-то использовать. Более неудобный API придумать сложно.

Но плюсы расширения pdo огромны: не придется менять интерфейс
Кто-то пользует PDO напрямую? Его api невозможно пользоваться.

А если речь о фреймворке, db-либа которой использует pdo-драйвер - так не проще ли для фреймворка написать драйвер, совместимый по интерфейсу с FrameworkDriverInterface?
 
Сверху