これは実際には CodeIgniter のバグです。 ODBC ドライバー (/system/database/drivers/odbc/odbc_driver.php) でテーブルを選択すると、次のメソッドが使用されます:
function _from_tables($tables){ if ( ! is_array($tables)) { $tables =array($tables); return '('.implode(', ', $tables).')';}
プレ>演算子の優先順位を強制するために、複数のテーブル選択をグループ化しようとします。これは、複数のテーブルを使用している場合は正常に機能するはずですが、1 つのテーブルを使用している場合でもグループ化を試みるため、エラーが発生します。
残念ながら、これらのドライバー ファイルを拡張することはできないので、コア ファイル自体を編集する必要があるかもしれません。将来 CodeIgniter を更新する必要がある場合に備えて、この点に注意してください。メソッドを次のように変更する必要があります:
function _from_tables($tables){ if ( ! is_array($tables)) { return strstr($tables, ',') ? '('.$tables.')' :$tables; } else { return count($tables)> 1 ? '('.implode(', ', $tables).')' :end($tables); }}コード> プレ>