|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 15 Nov 2003 13:02:48 To : Mykola Dzham Subject : Re: databases/p5-DBD-mysql и databases/p5-Mysql -------------------------------------------------------------------------------- >>> Mykola Dzham wrote: > MD>> Есть у меня такое подозрение что MySQL не реализует prepare и execute > MD>> как положено, а просто по prepare запоминае шаблон, а потом по execute > MD>> заполняет шаблон и делает do. Хотя может и ошибаюсь. >> Хотелось бы увидеть, а как можно сделать по-другому для строчных insert-ов с >> неизвестным количеством итераций.:) Hе ждать же, когда они все закончатся, а >> потом "подготовленные данные" ухать в базу. MD> Hа prepare база должна перевести запрос в свое внутренне представление, MD> проверить все права, корректность синтаксиса запроса, соптимизировать MD> запрос. Кому это она такое должна? Кто постановил? MD> А потом на execute уже просто выполнять этот запрос с нужными MD> параметрами. То есть ты хочешь, чтобы DBD модуль хранил в себе полные данные разбора SQL запроса со всеми особенностями синтаксиса, с учётом конкретной версии и желаемых оптимизаций? Или чтобы это отрабатывал собственно mysqld? Hу так я тебя огорчу - mysqld такого не знает, а загонять эту функциональность в DBD::mysql - ни один нормальный программист не будет, потому что кесарю - кесарево, а слесарю - слесарево. Hе дело клиента копаться во внутренностях сервера. И именно такую работу - что prepare просто запоминает (может быть, переводит в потоковый формат для общения клиент/сервер), а execute - подставляет параметры и исполняет - я видел и с mysql и c postgres. (Другие через DBI не использовал.) P.S. Кстати, именно с DBI + DBD::mysql натыкался несколько раз на то, что do() обламывался с неясной диагностикой, а prepare()+execute() с теми же параметрами - работало. Изучение сырцов DBI ясности не принесло, так что осталось только странное эмпирическое правило. -netch- --- ifmail v.2.15dev5.1 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/7368f14f49f9.html, оценка из 5, голосов 10
|