![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
box |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 27.2.2007 Репутация: нет Всего: 0 |
пишу :
и получаю : DBD::mysql::st execute failed: called with 1 bind variables when 0 are needed at /var/log/exe_new_new.pl line 51, <LOG> line 393. что не так ? как исправить ? |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
box, думаю, placeholders в таких запросах работать не будут. Можно попробовать убрать кавычки у ?, но это вряд-ли поможет.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
box |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 27.2.2007 Репутация: нет Всего: 0 |
юез кавычек мускул не пускает запрос
|
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
perldoc DBI
|
|||
|
||||
dmitryk1 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.6.2008 Где: Новосибирск Репутация: 2 Всего: 2 |
А что мешает делать так:
Тем более таким образом массово редактировать таблицы на рабочей базе, это всё-таки не ежеминутная операция. То есть это или редактор бд получается, один раз настроил и забыл, или неправильная структура бд, и надо переделывать и придумывать такую, при которой не требуются изменения таблиц. Кстати placeholders придуманы. чтобы защититься от sql inject и должны использоваться именно так:
Это сообщение отредактировал(а) dmitryk1 - 21.5.2010, 12:07 |
||||
|
|||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
dmitryk1,
А я почему-то думал, что placeholders придумали для ускорения выполнения набора одинаковых запросов, чтобы для каждого запроса не строился план выполнения, а защита от SQL Injection идет как бонус :о) -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Для единоразового разбора одинаковых запросов придумали prepared statements. Причем их использование не подразумевает обязательно placeholder. -------------------- Died at Life.pl line 21 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
KSURi, думаю, тебя не затруднит рассказать, как можно использовать prepared statements без placeholder'ов?
Это сообщение отредактировал(а) ginnie - 24.5.2010, 12:25 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
А чего рассказывать-то? Берешь и пишешь запрос без плейсхолдеров в prepare:
-------------------- Died at Life.pl line 21 |
|||
|
||||
ramus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 21.2.2008 Репутация: 1 Всего: 1 |
Уважаемый KSURi
"Для единоразового разбора одинаковых запросов придумали prepared statements. Причем их использование не подразумевает обязательно placeholder. " Использовать то можно. Но зачем нужно повторять одинаковый запрос без пласехолдеров (или bind переменных) ? Можете привести примеры? imho всегда надо либо что то передать в базу (IN), либо получить (INOUT) ... Это сообщение отредактировал(а) ramus - 26.5.2010, 22:01 |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Могу, но не буду.
-------------------- Died at Life.pl line 21 |
|||
|
||||
mvsgt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
когда придумали prepared, никаких sql ingection и в проекте не было...
|
|||
|
||||
dmitryk1 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.6.2008 Где: Новосибирск Репутация: 2 Всего: 2 |
Но используется так? Ну и я руководствовался только этим смыслом при использовании. Ну, разумеется и удобством. Да и кэширование в новых версиях оракла идёт более интеллектуально и без использования всего перечисленного. Добавлено через 13 минут и 17 секунд
Конечно не меня просили, но... Список активных подключений. Список товаров, проданных за текущие сутки. Список вызовов врача на дом, за сегодня. отчёт по приёмам врачей на сегодня. текущее местонахождение транспортных средств. мониторинг не переданных вызовов скорой помощи. Мониторинг вызовов обслуживаемых более планового времени. Мониторинг продолжительных разговоров диспетчеров И т.д и т.п... ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |