sql >> Database >  >> RDS >> Sqlserver

codeigniter en odbc verbindingen

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);
    }
}



  1. MySql:Tinyint (2) vs tinyint(1) - wat is het verschil?

  2. Zullen ANSI JOIN-query's anders presteren dan niet-ANSI JOIN-query's?

  3. Wanneer moet ik een tabelvariabele gebruiken versus een tijdelijke tabel op de sql-server?

  4. Datum opmaken (JJ:MM:DD:Tijd) in Excel