public function __construct($file = '', $query_builder = false, $profile = true) { if (strpos($file, BASE) !== false) { if (!is_file($file)) { if (!is_dir(dirname($file))) { mkdir(dirname($file), 0755, true); } $this->created = true; } } else { $file = ':memory:'; $this->created = true; } parent::__construct(ci_load_database('sqlite3', $file, $query_builder, $profile)); $this->ci->simple_query("PRAGMA foreign_keys = ON"); $temp = str_replace('\\', '/', dirname(__FILE__)) . '/temp/'; $this->ci->simple_query("PRAGMA temp_store_directory = '{$temp}'"); // This is deprecated, but on shared hosting it is necessary $this->fts = new FTS($this); }
$query_builder = isset($query_builder) ? $query_builder : false; $profile = isset($profile) && $profile === false ? false : true; if (isset($mssql)) { if ($export = ci_load_database('mssql', $mssql, $query_builder, $profile)) { $export = new Database($export); } } elseif (isset($mysql)) { if ($export = ci_load_database('mysqli', $mysql, $query_builder, $profile)) { $export = new Database($export); } } elseif (isset($oracle)) { if ($export = ci_load_database('oci8', $oracle, $query_builder, $profile)) { $export = new Database($export); } } elseif (isset($postgre)) { if ($export = ci_load_database('postgre', $postgre, $query_builder, $profile)) { $export = new Database($export); } } elseif (isset($sqlite)) { $export = new SQLite($sqlite, $query_builder, $profile); } elseif (isset($fts)) { $export = array(); list($search, $values) = each($fts); $db = new SQLite(); $db->fts->create('results', 'search', 'porter'); $db->fts->upsert('results', 'search', $values); $db->query('SELECT docid, search FROM results WHERE search MATCH ?', array($search)); while (list($docid, $value) = $db->fetch('row')) { $export[$docid] = $value; } unset($db);