") { printf("..."); } else { require "Odin32DBHelpers.php3"; /* Profiling */ $sPageTimer = Odin32DBTimerStart("page timer"); /* Profiling */ /* * ARG!Manually load the shit since system is broken in safe_mode. */ if (0) { /* * Load in the dump. */ /* unzip -p e:\netlabs.org\ftp\anonymous\pub\odin\Daily\db\odin32db.zip | d:\mysql\bin\mysql.exe --host=127.0.0.1 --user=odin32api --password=<> Odin32API */ /*$rc = system('unzip -p e:\\netlabs.org\\ftp\\anonymous\\pub\\odin\\Daily\\db\\odin32db.zip | d:\\mysql\\bin\\mysql.exe --host=127.0.0.1 --user=odin32api --password=<> Odin32API >> e:\\temp\\db.log 2>&1'); printf("load rc=%d\n", $rc);*/ } else { /* * We're using DATA FILE stuff to speed up loading. */ /* Connect to database */ require "Odin32DBConnect.php3"; $sDir = 'e:/netlabs.org/ftp/anonymous/pub/odin/Daily/db'; $hDir = opendir($sDir); while ($sEntry = readdir($hDir)) { $sFile = $sDir.'/'.$sEntry; if (!is_dir($sFile)) { if (substr($sFile, -4) == '.sql') if (ProcessSqlFile($db, $sFile)) unlink($sFile); } } closedir($hDir); $hDir = opendir($sDir); while ($sEntry = readdir($hDir)) { $sFile = $sDir.'/'.$sEntry; if (!is_dir($sFile)) { if (substr($sFile, -4) == '.txt') if (LoadSqlDataFile($db, $sFile)) unlink($sFile); } } closedir($hDir); } /* Profiling */ Odin32DBTimerStop($sPageTimer); /* Profiling */ } /** * Processes the ';' separated sql statements in a given file. * @returns Success indicator. * @param $sFile Name of the file. */ function ProcessSqlFile($db, $sFile) { $fRc = false; echo "sql: ".$sFile."\r\n"; $fh = fopen($sFile, "r"); if ($fh) { $fRc = true; $sSql = ''; while ($s = fgets($fh, 1024*1024)) { flush(); if (substr($s, 0, 1) == '#' || substr($s, 0, 2) == '--') { $sSql = ''; continue; } $sSql = $sSql.$s; if (strchr(substr($s, -3), ';')) /* check for end of statement (;). */ { $sSql = trim($sSql); $sSql = substr($sSql, 0, strlen($sSql) - 1); flush(); if (!($result = mysql_query($sSql, $db))) { Odin32DBSqlError($sSql); echo "sql: '".substr($sSql, 0, strlen($sSql) > 80 ? 80 : strlen($sSql))."'\r\n"; flush(); $fRc = false; } /* next */ $sSql = ''; } } fclose($fh); } return $fRc; } /** * Loads data file using LOAD IN DATA * @returns Success indicator. * @param $sFile File to load. */ function LoadSqlDataFile($db, $sFile) { $sTable = substr(strrchr(substr($sFile, 0, strlen($sFile) - 4), '/'), 1); $sSql = "LOAD DATA INFILE '".$sFile."' REPLACE INTO TABLE ".$sTable; echo "load: $sSql\r\n"; if (!($result = mysql_query($sSql, $db))) { Odin32DBSqlError($sSql); echo "load: $sSql\r\n"; flush(); return false; } return true; } ?>