царапает мне голову, почему код ниже не работает, нужны свежие глаза. Попробовали SQL-запрос в RazorSQL, и он возвращает значения, но я не могу заставить это работать в php. Никаких ошибок соединения или утверждения. Можем предположить, что это имеет какое-то отношение к «i5_libl», но havent нашел какие-либо обходные пути. Есть идеи?DB2 SQL Query через PHP не возвращает результаты
<?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.
У меня нет ничего, чтобы протестировать прямо сейчас, но я верю, установив DB2_I5_NAMING_ON, вам нужно квалифицировать свои файлы, используя '/' вместо '.'. Я бы попытался отключить его, чтобы увидеть, есть ли какие-либо изменения в поведении. –
@Bob Это было [изменено в 2012 году] (https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/System% 20naming% 20convention% 20расширенный% 20to% 20permit% 20% 28slash% 29% 20 и% 20% 28dot% 29% 20qualifiers) с технологией Refresh (т.е. группа PTF, как пакет обновления). Пока система поддерживается даже дистанционно до настоящего времени, это не должно быть проблемой. – WarrenT
Я попытался переключить DB2_I5_NAMING_ON и DB2_I5_NAMING_OFF с исправлениями в запрос, все еще ничего. Мне кажется, что это больше связано с конкретной библиотекой (CLTDTA). Когда я запускаю запрос SELECT для ванили на CLTPAY, я получаю результат в порядке. Когда я попробую эквивалент на CLTDTA, я не получаю результата. Пользователь использует список системных библиотек, который содержит ссылки на все соответствующие библиотеки, включая CLTDTA. –