rendered paste body $options = array(); if (in_array($dsn['phptype'], array('sqlite', 'ibase'))) { $options['database_path'] = $GLOBALS['core']['data_path']; $options['database_extension'] = '.'.$dsn['phptype']; } $mdb =& MDB2::singleton($dsn, $options); if (PEAR::isError($mdb)) { $this->error[] = INSTALLER_DSN_CONNECT; } else { $mdb->loadModule('Datatype'); $mdb->loadModule('Manager'); MDB2::loadFile('Date'); // check if database exists when not creating/overwriting $create = $this->ifSetOr($this->param['dsn'], 'create', 0); $overwrite = $this->ifSetOr($this->param['dsn'], 'overwrite', 0); if ($create && !$overwrite) { $errorcodes = array(MDB2_ERROR_UNSUPPORTED, MDB2_ERROR_NOT_CAPABLE); $mdb->expectError($errorcodes); $databases = $mdb->manager->listDatabases(); $mdb->popExpect(); if (PEAR::isError($databases)) { if (!MDB2::isError($databases, $errorcodes)) { $this->error[] = INSTALLER_DSN_ACCESS; } } elseif(in_array($this->param['dsn']['database'], $databases)) { $this->error[] = INSTALLER_DSN_DATABASE_EXISTS; } } require_once 'MDB2/Schema.php'; $schema =& MDB2_Schema::factory($mdb); if (PEAR::isError($schema)) { $this->error[] = INSTALLER_DSN_MANAGER; } }