db2 400 — DB2 SQL Query через PHP не возвращает результаты

почесывая голову о том, почему приведенный ниже код не работает, нужны свежие глаза. Я проверил SQL-запрос в RazorSQL, и он возвращает значения, но я не могу заставить его работать в php. Нет ошибок соединения или оператора. Думаю, это как-то связано с ‘i5_libl’, но никаких обходных путей не найдено. Есть идеи?

<?php

class employees
{
private $employees = array();
private $db_host = '*LOCAL';
private $db_options = array(
'i5_naming' => DB2_I5_NAMING_ON,
'i5_libl' => 'CLTDTA CLTPAY'
);

public function getList() {
$connection = db2_connect($this->db_host,$GLOBALS['db_user'],$GLOBALS['db_password'],$this->db_options);
echo db2_conn_error();
echo db2_conn_errormsg();
$sql='SELECT F0101.ABAN8, F0101.ABALPH FROM F0101 INNER JOIN FP0102 ON F0101.ABAN8=FP0102.VEAN8 WHERE FP0102.VESTAT=\'\'';
$stmt= db2_prepare($connection,$sql);
echo db2_stmt_error();
echo db2_stmt_errormsg();
$result= db2_execute($stmt);
while ($row = db2_fetch_assoc($stmt)) {
echo $row['ABAN8'];
}
db2_close($connection);
return true;
}

}
?>

!! Обновить:

Я попытался переключить DB2_I5_NAMING_ON и DB2_I5_NAMING_OFF, с поправками к запросу, но ничего не вышло. Сдается мне, что это больше связано с конкретной библиотекой (CLTDTA). Когда я запускаю ванильный запрос SELECT только на CLTPAY, я получаю хороший результат. Когда я пробую эквивалент на CLTDTA, я не получаю результат. Пользователь использует список системных библиотек, который содержит ссылки на все соответствующие библиотеки, включая CLTDTA.

1

Решение

Ошибки в настоящее время вторил за каждый выполняемый шаг Кроме для выполнения. Добавьте те же запросы после EXECUTE, точно так же, как это делается после шагов CONNECT и PREPARE.

Если по-прежнему ничего не очевидно, включите функцию обмена сообщениями отладки [через соединение, запустите задание службы (STRSRVJOB), затем запустите отладку (STRDBG) для задания, обслуживающего соединение, или используя возможности QAQQINI] и просмотрите журнал заданий для обслуживания задания. связь. Возможно, с таким же успехом можно начать и подробный мониторинг базы данных; Запустите монитор базы данных (STRDBMON), чтобы проверить входящие выписки. Если по-прежнему ничего не видно из этого, то также получите трассировку задания, а затем проверьте по данным трассировки [т.е. эффективный отлаживать трассировка DATA-записей против выполнения FLOW-записей], что соответствующие \ ожидаемые файлы открываются запросом запроса.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]