Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

codeigniter e connessioni odbc

Questo è in realtà un bug in CodeIgniter. Nel driver ODBC (/system/database/drivers/odbc/odbc_driver.php) quando selezioni una tabella utilizza il seguente metodo:

function _from_tables($tables)
{
    if ( ! is_array($tables))
    {
        $tables = array($tables);
    }

    return '('.implode(', ', $tables).')';
}

Tenta di raggruppare più selezioni di tabelle insieme per imporre la precedenza degli operatori, questo dovrebbe funzionare correttamente se stai utilizzando più di una tabella, tuttavia con una tabella tenta comunque di raggrupparla causando l'errore che stai ricevendo.

Sfortunatamente, non credo sia possibile estendere questi file del driver, quindi potrebbe essere necessario modificare il file principale stesso. Prendi nota di questo nel caso in cui dovessi aggiornare CodeIgniter in futuro, dovrai cambiare il metodo in qualcosa di simile al seguente:

function _from_tables($tables)
{
    if ( ! is_array($tables))
    {
        return strstr($tables, ',') ? '('.$tables.')' : $tables;
    }
    else
    {
        return count($tables) > 1 ? '('.implode(', ', $tables).')' : end($tables);
    }
}