Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, уважаемые! Столкнулся с проблемой выдачи результатов запроса хранимой процедуры DB2 средствами PHP. Вызов процедуры в Quest Cental проход нормально, в PHP выдает ошибку. Хочу отрисовтаь из всех полей ток два определенных. Вот код PHP. <?php $base="***"; $name="***"; $password="***"; $conn=odbc_connect($base,$name,$password) or die(odbc_errormsg()); $sql=odbc_exec($conn, "call LSOM02.GET_OTPR_PAYER ('2010-07-30-00.00.00', '2010-07-31-00.00.00', 100027162, 0,?,?)") or die(odbc_errormsg()); $row=odbc_fetch_array($sql); do { echo $row['ID']; echo $row['KODPL']; } while ($row=odbc_fetch_array($sql)); odbc_close($conn); ?> Как заметили в конце запроса стоит два параметра под знаками ?. В БД у меня права только на вызов процедурки. Может еще какие библиотеки вкрутить в PHP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2010, 10:58 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
atreides, Документация рулит! Внимательно читаем последний абзац про Unified ODBC : Introduction to PHP application development for DB2 А это собственно про вызов хранимых процедур: Calling stored procedures with OUT or INOUT parameters in PHP (ibm_db2) Calling stored procedures with OUT or INOUT parameters in PHP (PDO) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2010, 11:07 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
код такой <?php $base="***"; $name="***"; $password="***"; $conn=odbc_connect($base,$name,$password) or die(odbc_errormsg()); $sql=odbc_exec($conn, "call LSOM02.GET_OTPR_PAYER ('2010-07-30-00.00.00', '2010-07-31-00.00.00', 100027162, 0,?,?)") or die(odbc_errormsg()); $row=odbc_fetch_array($sql); do { echo $row['ID']; echo $row['KODPL']; echo $row['DTO']; echo $row['STO']; echo $row['STN']; echo $row['STNP']; echo $row['NOMD']; echo $row['KATOTP']; echo $row['NOMVAG']; echo $row['VESGR']; echo $row['KODGRNSI']; echo $row['KODGRGNG']; echo $row['SUMMA']; echo $row['KODGO']; echo $row['OKPOGO']; echo $row['KODGP']; echo $row['OKPOGP']; echo $row['ISKL']; echo $row['RMONTH']; echo $row['STRN']; echo $row['PRIN_VK']; echo $row['GRUZOPOD']; echo $row['DORO']; echo $row['DORNP']; echo $row['DORN']; } while ($row=odbc_fetch_array($sql)); odbc_close($conn); ?> посылает по ошибке Warning: odbc_exec() [function.odbc-exec]: SQL error: [IBM][CLI Driver] CLI0100E Wrong number of parameters. SQLSTATE=07001, SQL state 07001 in SQLExecDirect in D:\home\localhost\www\php\my_DB.php on line 17 [IBM][CLI Driver] CLI0100E Wrong number of parameters. SQLSTATE=07001. щас почитаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2010, 13:33 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
пробую через ODBC посылает по Warning: odbc_exec() [function.odbc-exec]: SQL error: [IBM][CLI Driver] CLI0100E Wrong number of parameters. SQLSTATE=07001, SQL state 07001 in SQLExecDirect in D:\home\localhost\www\php\DB2.php on line 19 [IBM][CLI Driver] CLI0100E Wrong number of parameters. SQLSTATE=07001. 19 строка у меня - $sql=odbc_exec($conn, "call LSOM02.GET_OTPR_PAYER ('2010-07-30-00.00.00', '2010-07-31-00.00.00', 100027162, 0,?,?)") or die(odbc_errormsg()); как-то криво я параметры передаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2010, 14:08 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
ничего про параметры там не нашел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2010, 15:45 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
atreides, Что непонятно в коде, который приведен в примере? Cсылка на пример (ее уже давал выше): Calling stored procedures with OUT or INOUT parameters in PHP (ibm_db2) Код из примера: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. В вашем случае будет примерно так (предполагаю, что возвращается два параметра и курсор): Код: plaintext 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. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2010, 16:57 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
Вот, вроде начал понимать суть проблемы, может PHP не понимает, какие выходные данные и куда выводить? $sql=odbc_exec($conn, "call LSOM02.GET_OTPR_PAYER ('2010-07-30-00.00.00', '2010-07-31-00.00.00', 100027162, 0,?,?)") or die(odbc_errormsg()); - вот тут стоят вопросы, может подсунуть туда переменные и вывести их? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2010, 08:59 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
atreides, Цитирую еще раз выдержку из документации http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.apdv.php.doc/doc/c0021523.htmA third extension, Unified ODBC, has historically offered access to DB2 database systems. It is not recommended that you write new applications with this extension because ibm_db2 and PDO_ODBC both offer significant performance and stability benefits over Unified ODBC. The ibm_db2 extension API makes porting an application that was previously written for Unified ODBC almost as easy as globally changing the odbc_ function name to db2_ throughout the source code of your application. Откажитесь от Unified ODBC (odbc_exec) в пользу ibm_db2 (для простоты перехода с odbc) или PDO (предпочтительно) и будет вам счастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2010, 11:15 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
Спасибо огромное! А где можно модули IBM_DB2 и PDO скачать, а то я в настройках раскомменитровал в php.ini и библиотеки в system32 закинул, но PHP отказывается их видеть, может, есть установочники какие готовые? В IBM_DB2 инициация подключения, как и через odbc? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2010, 08:26 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
atreidesА где можно модули IBM_DB2 и PDO скачать, а то я в настройках раскоменитровал в php.ini и библиотеки в system32 закинул, но PHP отказывается их видеть, может, есть установочники какие готовые? В IBM_DB2 инициация подключения, как и через odbc? хорошая ссылка про инсталяцию :) оттуда уходишь по ссылке авторhttp://sourceforge.net/projects/db2mc/files/ качаешь из раздела IBM_DB2 PHP Driver for Windows подходящий для своей версии ПХП архив разворачиваешь библиотеку из архива в директорию {php_install_dir}\ext добавляешь или снимаешь комменты со строк в php.ini [PHP_IBM_DB2] extension=php_ibm_db2.dll перепускаешь аппач ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2010, 11:14 |
|
||
|
DB2+PHP+APACHE+Windows
|
|||
|---|---|---|---|
|
#18+
atreides, Ссылки на аналогичные темы в форуме: Где взять рабочую версию "php_ibm_db2.dll"? DB2 Connect 9.5 + PHP 5.2.x + Apache 2.2.x + Windows NTS-библиотека идет в составе клиента версии 9.5. Более новые библиотеки (TS и NTS) выложены здесь : http://downloads.php.net/pierre/ PHP нужно настроить согласно документации : Setting up the PHP environment on Windows PHP DB2 : Introduction to PHP application development for DB2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2010, 11:17 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36788356&tid=1602607]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 294ms |
| total: | 438ms |

| 0 / 0 |
