Il s'agit en fait d'un bogue dans CodeIgniter. Dans le pilote ODBC (/system/database/drivers/odbc/odbc_driver.php) lorsque vous sélectionnez une table, il utilise la méthode suivante :
function _from_tables($tables)
{
if ( ! is_array($tables))
{
$tables = array($tables);
}
return '('.implode(', ', $tables).')';
}
Il tente de regrouper plusieurs sélections de table pour appliquer la priorité des opérateurs. Cela devrait fonctionner correctement si vous utilisez plusieurs tables, mais avec une table, il essaie toujours de la regrouper, ce qui provoque l'erreur que vous obtenez.
Malheureusement, je ne pense pas qu'il soit possible d'étendre ces fichiers de pilote, vous devrez donc peut-être modifier le fichier principal lui-même. Prenez note de ceci au cas où vous auriez besoin de mettre à jour CodeIgniter à l'avenir, vous devrez changer la méthode en quelque chose comme ce qui suit :
function _from_tables($tables)
{
if ( ! is_array($tables))
{
return strstr($tables, ',') ? '('.$tables.')' : $tables;
}
else
{
return count($tables) > 1 ? '('.implode(', ', $tables).')' : end($tables);
}
}