continue;
}
- $cmd = "$mysql_cmd -f < " . escapeshellarg($fn) ;
+ $cmd = "$mysql_cmd -f < " . escapeshellarg($fn) ." 2>&1" ;
echo basename($dir).'/'. basename($fn) . '::' . $cmd. ($this->cli ? "\n" : "<BR>\n");
while(!feof($fp))
{
// send the current file part to the browser
- $line = fgets($fp, 1024);
- echo '->>> ' . $line . " <<<---\n";
- echo "--";
+ $line = trim(fgets($fp, 1024));
+ if (empty($line)) {
+ continue;
+ }
+ $matches = array();
+ if (!preg_match('/^ERROR\s+([0-9]+)/', $line, $matches)) {
+ echo "OK - {$line}\n"; flush();
+ continue;
+ }
+ $continue =0;
+ switch($matches[1]) {
+ case 1050: // create tables triggers this..
+ case 1060: // Duplicate column name
+ case 1061: // Duplicate key name - triggered by add index.. but could hide error. - unlikely though.
+ case 1091: // drop index -- name does not exist.. might hide errors..
+
+ case 1054: // Unknown column -- triggered by CHANGE COLUMN - but may hide other errrors..
+ $continue = 1;
+ break;
+
+ }
+ if ($continue) {
+ echo "IGNORE - {$line}\n"; flush();
+ continue;
+ }
+ // real errors...
+ // 1051: // Unknown table -- normally drop = add iff exists..
+ echo "File: $fn\n$line\n";
+ exit;
- // flush the content to the browser
- flush();
}