Dit is eigenlijk een bug in CodeIgniter. Wanneer u in het ODBC-stuurprogramma (/system/database/drivers/odbc/odbc_driver.php) een tabel selecteert, wordt de volgende methode gebruikt:
function _from_tables($tables)
{
if ( ! is_array($tables))
{
$tables = array($tables);
}
return '('.implode(', ', $tables).')';
}
Het probeert meerdere tabelselecties samen te groeperen om de operatorprioriteit af te dwingen. Dit zou prima moeten werken als u meer dan één tabel gebruikt, maar met één tabel probeert het deze nog steeds te groeperen, wat de fout veroorzaakt die u krijgt.
Helaas geloof ik niet dat het mogelijk is om deze stuurprogrammabestanden uit te breiden, dus het kan zijn dat u het kernbestand zelf moet bewerken. Houd hier rekening mee voor het geval u CodeIgniter in de toekomst moet bijwerken, u moet de methode wijzigen in iets als het volgende:
function _from_tables($tables)
{
if ( ! is_array($tables))
{
return strstr($tables, ',') ? '('.$tables.')' : $tables;
}
else
{
return count($tables) > 1 ? '('.implode(', ', $tables).')' : end($tables);
}
}