На самом деле это ошибка в CodeIgniter. В драйвере ODBC (/system/database/drivers/odbc/odbc_driver.php) при выборе таблицы используется следующий метод:
function _from_tables($tables)
{
if ( ! is_array($tables))
{
$tables = array($tables);
}
return '('.implode(', ', $tables).')';
}
Он пытается сгруппировать несколько выбранных таблиц вместе, чтобы обеспечить приоритет оператора, это должно работать нормально, если вы используете более одной таблицы, однако с одной таблицей он все еще пытается сгруппировать ее, что вызывает ошибку, которую вы получаете.
К сожалению, я не верю, что возможно расширить эти файлы драйверов, поэтому вам, возможно, придется редактировать основной файл. Обратите внимание на это, если в будущем вам потребуется обновить CodeIgniter, вам придется изменить метод на что-то вроде следующего:
function _from_tables($tables)
{
if ( ! is_array($tables))
{
return strstr($tables, ',') ? '('.$tables.')' : $tables;
}
else
{
return count($tables) > 1 ? '('.implode(', ', $tables).')' : end($tables);
}
}