")
{
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;
}
?>