CLI0145E db2_fetch_array

#php #db2

#php #db2

Вопрос:

я работаю с DB2 на php и получаю следующую ошибку при выполнении

 @$row = db2_fetch_array( $res );
[IBM][CLI Driver] CLI0145E Fetch type out of range. SQLSTATE=HY106 SQLCODE=-99999
  

Я нашел здесь возможное объяснение, но для меня это не имеет смысла, потому что я не указываю номер строки.

Кто-нибудь может дать какие-нибудь объяснения?

Спасибо!

Ответ №1:

Я полагаю, что вы неправильно поняли предложение, содержащееся на странице, на которую вы ссылались. Это относится не к db2_fetch_array() функции, а к db2_connect() function . Чтобы установить для параметра cursor значение DB2_SCROLLABLE , передайте эту константу в четвертый параметр функции подключения к базе данных:

 db2_connect('database', 'username', 'password', DB2_SCROLLABLE);
  

Если это неправильное решение, возможно, оно отображает эту ошибку, потому что результат содержит 0 строк? Всегда полезно проверить, была ли возвращена хотя бы одна строка перед вызовом db2_fetch_array() (или связанной функции):

 if (db2_num_rows($res) > 0){
  @$row = db2_fetch_array( $res );
}