Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

połączenia kodeignitera i odbc

W rzeczywistości jest to błąd w CodeIgniter. W sterowniku ODBC (/system/database/drivers/odbc/odbc_driver.php) po wybraniu tabeli używa on następującej metody:

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

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

Próbuje zgrupować wiele tabel, aby wymusić pierwszeństwo operatorów, powinno to działać dobrze, jeśli używasz więcej niż jednej tabeli, jednak z jedną tabelą nadal próbuje ją zgrupować, co powoduje błąd, który otrzymujesz.

Niestety nie wierzę, że jest możliwe rozszerzenie tych plików sterowników, więc być może będziesz musiał edytować sam plik core. Zwróć uwagę na to, jeśli będziesz musiał zaktualizować CodeIgniter w przyszłości, będziesz musiał zmienić metodę na coś podobnego do następującego:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy SQL Server może wysłać żądanie internetowe?

  2. WYBIERZ DLA XML AUTO i zwróć typy danych

  3. Datetime T-SQL zaokrąglone do najbliższej minuty i najbliższych godzin przy użyciu funkcji

  4. Podziel wartości na wiele wierszy

  5. Nie można rozwiązać konfliktu sortowania między SQL_Latin1_General_CP1_CI_AS i Latin1_General_CI_AS w operacji równej