Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Codeigniter und odbc-Verbindungen

Dies ist eigentlich ein Fehler in CodeIgniter. Im ODBC-Treiber (/system/database/drivers/odbc/odbc_driver.php) wird beim Auswählen einer Tabelle die folgende Methode verwendet:

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

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

Es versucht, mehrere Tabellenauswahlen zu gruppieren, um den Vorrang der Operatoren zu erzwingen. Dies sollte gut funktionieren, wenn Sie mehr als eine Tabelle verwenden. Bei einer Tabelle versucht es jedoch immer noch, sie zu gruppieren, was den Fehler verursacht, den Sie erhalten.

Leider glaube ich nicht, dass es möglich ist, diese Treiberdateien zu erweitern, sodass Sie möglicherweise die Kerndatei selbst bearbeiten müssen. Beachten Sie dies, falls Sie CodeIgniter in Zukunft aktualisieren müssen, müssen Sie die Methode wie folgt ändern:

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