Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Perl DBI - как передать именованные параметры списком?
|
|||
|---|---|---|---|
|
#18+
Подскажите, как можно передать список именованных параметров в метод do? Синтаксис метода такой: Код: php 1. Мне нужно выполнить SQL-запрос (в переменной $sql), в котором используется параметр ':scope' (он в переменной $scope). Код: php 1. Выдает ошибку "Can't bind unknown placeholder ':p1' (1)" (то есть ожидаем не именованных, а позиционных параметров). Код: php 1. Код: php 1. Выдают ошибку "DBD::Oracle::db do failed: called with 2 bind variables when 1 are needed". Код: php 1. Выдает ошибку "Can't bind a reference". Обычно я использовал prepare/bind_param/execute. А можно ли одной командой обойтись? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2015, 11:37 |
|
||
|
Perl DBI - как передать именованные параметры списком?
|
|||
|---|---|---|---|
|
#18+
Alibek B., Можно. Читая документацию к bind_param так-же узнаешь что у нее нету имени переменной. Вы когда-нибудь будите читать хотя-бы начальные книги по Перлу, а не городить отсебятену? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2015, 02:41 |
|
||
|
Perl DBI - как передать именованные параметры списком?
|
|||
|---|---|---|---|
|
#18+
WarstoneЧитая документацию к bind_param так-же узнаешь что у нее нету имени переменной. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Это код, который работает у меня не первый год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2015, 08:44 |
|
||
|
Perl DBI - как передать именованные параметры списком?
|
|||
|---|---|---|---|
|
#18+
Alibek B., Вы продолжаете не хотеть читать документацию. Это, видно, врожденное... http://search.cpan.org/~pythian/DBD-Oracle-1.74/lib/DBD/Oracle.pm#bind_param Вот тут действительно написано что в DBD::Oracle это есть. Однако do реализован, внезапно, в DBI, у которого нету символьных параметров и который работает "по другому". По этому или вы читаете документацию или не читаете. Но нельзя быть немного беременным... Подход "это работает" неприменим. Или тогда "с do это не работает" и вот вам ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 03:25 |
|
||
|
Perl DBI - как передать именованные параметры списком?
|
|||
|---|---|---|---|
|
#18+
Спасибо за потраченное время, конечно. Но как ни странно, документацию я читаю. Более того, и исходный код я также просматриваю: Код: php 1. 2. 3. 4. 5. 6. 7. 8. Например метод do — это по сути обертка для метода execute, который (сюрприз) реализован в DBD. Вернее непосредственно метод описан в файле DBI::DBD::SqlEngine.pm, однако видимо он где-то переопределяется, поскольку для DBD::Oracle поведение, к примеру, bind_param не соответствует тому, что написано в исходном коде: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Здесь, к примеру, bind_param присваивает значение параметров массиву параметров, т.е. именованный параметр данный код обработать не может в принципе. Однако у меня именованные параметры успешно назначаются (без исключения в предпоследней строке), значит где-то в DBD::Oracle этот метод переопределяется. Но вот как метод переопределяется и как это все работает в целом я понять не смог, поэтому и спрашиваю на форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 09:19 |
|
||
|
Perl DBI - как передать именованные параметры списком?
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, что долго не отвечал... Затянуло... Посмотрите где execute и как он работает. Дальше проверьте что my ($a, $b, @c) = @_ в @c будет все оставшееся и после этого вы +- поймете как вам надо вызвать так, чтобы заработало и может-ли это работать. Однако я настоятельно рекомендую вам этого не делать и пользоваться неименованными плейсхолдерами. А для реализации того, что хотите вы - пользоваться какими-нибудь SQL генераторами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2015, 17:38 |
|
||
|
Perl DBI - как передать именованные параметры списком?
|
|||
|---|---|---|---|
|
#18+
Ок, спасибо за ответ. Разбираться с такими модулями как DBI нецелесообразно — времени потрачу слишком много. Сделал обертку (процедуру), в которой параметры задаю через bind_param. Такое под мою задачу вполне подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2015, 18:04 |
|
||
|
|

start [/forum/topic.php?fid=23&tid=1461661]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 392ms |

| 0 / 0 |
