Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 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();
     }
 }