Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не могу разобраться в Perl (Perl vs PostgreSQL)
|
|||
|---|---|---|---|
|
#18+
Среда: ОС Windows XP Prof, PostgreSQL 8.2.4, dll-ка от Active Perl 5.8. Пишу процедуру на строне сервера на plperl Смысл ее прост... Нужно получить список колонок таблицы, имя которой является параметром процедуры. Внутри цикла, формирующего строку дублирую её формирование в другую переменную... Итак Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Теперь выполним: Код: plaintext 1. В результате имеем примерно следующее: "1st column set is: 0=idkey,1=idname,... 2nd column set is: 0=idkey,1=idname,..." Очевидно, что две переменные $cols1_set и $cols2_set Равны... Теперь изменим процедуру... Сформируем $cols2_set используя заранее невыполнимое условие, например, так: if ($name != 'нехорошее слово') {$cols2_set .= $i.'='.$name.','; } , получаем следующую изменённую процедуру: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Выполним SQL запрос обозначенный выше и получаем.......... УПС!!! "1st column set is: 0=idkey,1=idname,... 2nd column set is: " Теперь ВОПРОС... ПОЧЕМУ произошла потеря значений переменных $i и $name ??? Просьба разъснить... В документации не нашел ничего, чтобы говорило о каких-либо ограничений на область действия переменных... С уважением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 00:47 |
|
||
|
Не могу разобраться в Perl (Perl vs PostgreSQL)
|
|||
|---|---|---|---|
|
#18+
В перле отдельные операторы для сравнения строк и чисел. == != < > <=> сравнивают числа eq ne lt gt cmp сравнивают строки Любая нечисловая строка в числовом контексте превращается в 0. Соответственно все не-числа равны между собой. Панять эта нэвазможна - эта нада запомнить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 03:28 |
|
||
|
Не могу разобраться в Perl (Perl vs PostgreSQL)
|
|||
|---|---|---|---|
|
#18+
строки в Perl сравниваются оператором 'ne' а не '!=' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 03:28 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=294&tid=2005314]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 381ms |

| 0 / 0 |
