/** * execute a query * @param string * @param string * @return boolean ture if query was processed successfully */ function readDump($db, $file) { // mysql (old procedure) if ($db->getDBType() == "mysql") { $fp = fopen($file, 'r'); while (!feof($fp)) { //$line = trim(fgets($fp, 200000)); $line = trim($this->getline($fp, "\n")); if ($line != "" && substr($line, 0, 1) != "#" && substr($line, 0, 1) != "-") { //take line per line, until last char is ";" if (substr($line, -1) == ";") { //query is complete $q .= " " . substr($line, 0, -1); $r = $db->query($q); if ($db->getErrorNo() > 0) { echo "<br />ERROR: " . $db->getError() . "<br />SQL: {$q}"; return false; } unset($q); unset($line); } else { $q .= " " . $line; } //else } //if } //for fclose($fp); } #echo 'Start Memory: '.memory_get_usage().' peak: '.memory_get_peak_usage(); if (in_array($db->getDBType(), array("oracle", "postgres", "innodb"))) { if (@is_dir('./setup/sql/ilDBTemplate')) { include_once './Services/Database/classes/class.ilArrayTableDataParser.php'; include_once './Services/Xml/exceptions/class.ilSaxParserException.php'; $reader = new tmpDirectoyIterator('./setup/sql/ilDBTemplate'); foreach ($reader as $file) { eval(file_get_contents('./setup/sql/ilDBTemplate/' . $file)); try { $parser = new ilArrayTableDataParser('./setup/sql/ilDBTemplate/' . $file . '_inserts'); #$parser = new ilSimpleXMLTableDataParser('./setup/sql/ilDBTemplate/'.$file.'.xml'); $parser->startParsing(); #echo 'Table: '.$file.', memory: '.memory_get_peak_usage().' peak: '.memory_get_peak_usage().'<br />';flush(); } catch (ilSaxParserException $e) { die($e); } } } else { include_once "./setup/sql/ilDBTemplate.php"; setupILIASDatabase(); } } #echo 'Start Memory: '.memory_get_usage().' peak: '.memory_get_peak_usage(); return true; }
/** * Load SQL Template * * @param * @return */ function loadSqlTemplate($file) { global $ilDB; // mysql if ($ilDB->getDBType() == "mysql") { $fp = fopen($file, 'r'); if (!$fp) { $this->log("Error reading file {$file}."); return; } $this->log("Dropping Tables."); $set = $ilDB->query("SHOW tables"); while ($rec = $ilDB->fetchAssoc($set)) { foreach ($rec as $v) { $ilDB->query("DROP TABLE " . $v); } } $this->log("Read Dump."); while (!feof($fp)) { //$line = trim(fgets($fp, 200000)); $line = trim($this->getline($fp, "\n")); if ($line != "" && substr($line, 0, 1) != "#" && substr($line, 0, 1) != "-") { //take line per line, until last char is ";" if (substr($line, -1) == ";") { //query is complete $q .= " " . substr($line, 0, -1); $r = $ilDB->query($q); if (mysql_errno() > 0) { echo "<br />ERROR: " . mysql_error() . "<br />SQL: {$q}"; return false; } unset($q); unset($line); } else { $q .= " " . $line; } //else } //if } //for fclose($fp); } if ($ilDB->getDBType() == "oracle") { include_once "./setup/sql/ilDBTemplate.php"; setupILIASDatabase(); } }