0) {$restore["anzahl_zeilen"]=$config["minspeed"];} $restore["actual_table"]=strtolower(get_tablename($complete_sql)); //Tabellenfelderanzahl ermitteln $restore["actual_fieldcount"]=AnzahlTabellenfelder($complete_sql); $restore["num_table_fields"][$restore["actual_table"]]=$restore["actual_fieldcount"]; //DEFAULT CHARSET HACK if((GetMySQLVersion()-4.1)<0) { $ll=strpos(strtoupper($complete_sql)," DEFAULT CHARSET"); if($ll) { $ll2=strpos($complete_sql," ",$ll+12); if($ll2) $complete_sql=substr($complete_sql,0,$ll).substr($complete_sql,$ll2); else $complete_sql=substr($complete_sql,0,$ll).';'; } } $restore["table_create"][$restore["actual_table"]]=$complete_sql; $sqlparser_status=100; //Befehl komplett } } if($sqlparser_status==4) { //Createindex if($last_char==";" ) { if($config["minspeed"]>0) {$restore["anzahl_zeilen"]=$config["minspeed"];} $sqlparser_status=100; //Befehl komplett } } if($sqlparser_status==3) { //Datensatzaktion if(substr(rtrim($zeile),-2)==");") { //scheinbar ein Ende erreicht $AnzahlFelder=SQL_Is_Complete($complete_sql); if($AnzahlFelder==$restore["num_table_fields"][$restore["actual_table"]]) { $sqlparser_status=100; } if($AnzahlFelder>$restore["num_table_fields"][$restore["actual_table"]]) { if(!isset($restore["table_create"][$restore["actual_table"]])) { include("inc/functions_sql.php"); $restore["table_create"][$restore["actual_table"]]=GetCreateTable($databases["db_actual"],$restore["actual_table"]); } echo '
'; echo '

Parser-Fehler : zuviele gezählt in Tabelle '.$restore["actual_table"].' ('.$AnzahlFelder.' statt '.$restore["num_table_fields"][$restore["actual_table"]].')'; echo '

CREATE-Anweisung

'; echo '

INSERT-Anweisung


'; echo '

'; /*echo "
";
					print_r($restore);
					echo "
";*/ die; } } } if ( ($restore["compressed"]) && (gzeof($restore["filehandle"])) ) $restore["fileEOF"]=true; if ( (!$restore["compressed"]) && (feof($restore["filehandle"])) ) $restore["fileEOF"]=true; } return trim($complete_sql) ; } // extrahiert auf einfache Art den Tabellennamen aus dem "Create"-Befehl function get_tablename($t) { global $restore; $t=trim(str_replace("CREATE TABLE","",strtoupper($t))); $w=explode(" ",$t); $tn=$w[0]; $restore["table_ready"]++; if(substr($tn,0,1)=="`") $tn=substr($tn,1,strlen($tn)-2); return $tn; } // extrahiert auf einfache Art den Tabellennamen aus dem "Create"-Befehl function get_tablename_aus_insert($t) { $t=str_replace("insert into ","",strtolower($t)); $w=explode(" ",$t); $tn=$w[0]; if(substr($tn,0,1)=="`") $tn=substr($tn,1,strlen($tn)-2); return $tn; } function AnzahlTabellenfelder($s,$debug=0) { // ermittelt die Anzahl der Spalten einer Tabelle aus einer CREATE-Anweisung $anz=$anz_delimter=$rit=$klammerstart=$klammerauf=$klammerzu=0; $s=strtoupper($s); $i=strpos($s,"(")+1; $s=substr($s,$i); $tb=explode(",",$s); $defaultstart=false; for ($i=0;$i'.$anz." [offene Klammern: $klammerstart] --$rit
"; } return $anz; } function SQL_Is_Complete($s,$debug=0) { $anz=$f_begin=$f_end=0; $Backslash=chr(92); $s=trim(strtoupper(($s))); $s=substr($s,0,strlen($s)-2); $i=strpos($s," VALUES")+7; $s=substr($s,$i); $i=strpos($s,"(")+1; $s=substr($s,$i); $tb=explode(",",$s); for ($i=0;$i2) { $f_end=1; } elseif (($B_Delimiter % 2)==1 && strlen($v)>2) { //ist mit `'` maskiert $f_end=0; } elseif(($B_Esc % 2)==1) { //ist mit Backslash maskiert $f_end=0; } else { $f_end=1; } } } if($debug==1) echo "$f_begin/$f_end Feld $i: ".htmlspecialchars($tb[$i])."- $anz ($B_Ticks / $B_Esc)
"; if($f_begin==1 && $f_end==1) { $anz++; $f_begin=$f_end=0; } } return $anz; } ?>