Beispiel #1
0
function DownGrade($s, $show = true)
{
    $tmp = explode(",", $s);
    //echo "<pre>";print_r($tmp);echo "</pre>";
    for ($i = 0; $i < count($tmp); $i++) {
        $t = strtolower($tmp[$i]);
        if (strpos($t, "collate ")) {
            $tmp2 = explode(" ", $tmp[$i]);
            for ($j = 0; $j < count($tmp2); $j++) {
                if (strtolower($tmp2[$j]) == "collate") {
                    $tmp2[$j] = "";
                    $tmp2[$j + 1] = save_bracket($tmp2[$j + 1]);
                    $j++;
                }
            }
            $tmp[$i] = implode(" ", $tmp2);
        }
        if (strpos($t, "engine=")) {
            $tmp2 = explode(" ", $tmp[$i]);
            for ($j = 0; $j < count($tmp2); $j++) {
                if (substr(strtoupper($tmp2[$j]), 0, 7) == "ENGINE=") {
                    $tmp2[$j] = "TYPE=" . substr($tmp2[$j], 7, strlen($tmp2[$j]) - 7);
                }
                if (substr(strtoupper($tmp2[$j]), 0, 8) == "CHARSET=") {
                    $tmp2[$j] = "";
                    $tmp2[$j - 1] = save_bracket($tmp2[$j - 1]);
                }
                if (substr(strtoupper($tmp2[$j]), 0, 8) == "COLLATE=") {
                    $tmp2[$j] = save_bracket($tmp2[$j]);
                    $tmp2[$j - 1] = "";
                }
            }
            $tmp[$i] = implode(" ", $tmp2);
        }
        // character Set sprache  entfernen
        if (strpos($t, "character set")) {
            $tmp2 = explode(" ", $tmp[$i]);
            $end = false;
            for ($j = 0; $j < count($tmp2); $j++) {
                if (strtolower($tmp2[$j]) == "character") {
                    $tmp2[$j] = '';
                    $tmp2[$j + 1] = save_bracket($tmp2[$j + 1]);
                    $tmp2[$j + 2] = save_bracket($tmp2[$j + 2]);
                }
            }
            $tmp[$i] = implode(" ", $tmp2);
        }
        if (strpos($t, "timestamp")) {
            $tmp2 = explode(" ", $tmp[$i]);
            $end = false;
            for ($j = 0; $j < count($tmp2); $j++) {
                if ($end) {
                    $tmp2[$j] = "";
                }
                if (strtolower($tmp2[$j]) == "timestamp") {
                    $tmp2[$j] = "TIMESTAMP(14)";
                    $end = true;
                }
            }
            $tmp[$i] = implode(" ", $tmp2);
        }
    }
    $t = implode(",", $tmp);
    if (substr(rtrim($t), -1) != ";") {
        $t = rtrim($t) . ";";
    }
    return $t;
}
function DownGrade($s, $show = true)
{
    //	if (MSD_NEW_VERSION && strpos(strtolower($s),"collate ") && ($show) ) {
    //		return $s;
    //	} else {
    $tmp = explode(",", $s);
    //echo "<pre>";print_r($tmp);echo "</pre>";
    for ($i = 0; $i < count($tmp); $i++) {
        $t = strtolower($tmp[$i]);
        if (strpos($t, "collate ")) {
            $tmp2 = explode(" ", $tmp[$i]);
            for ($j = 0; $j < count($tmp2); $j++) {
                if (strtolower($tmp2[$j]) == "collate") {
                    $tmp2[$j] = "";
                    $tmp2[$j + 1] = save_bracket($tmp2[$j + 1]);
                    $j++;
                }
            }
            $tmp[$i] = implode(" ", $tmp2);
        }
        if (strpos($t, "engine=")) {
            $tmp2 = explode(" ", $tmp[$i]);
            for ($j = 0; $j < count($tmp2); $j++) {
                //echo $j.": ".$tmp2[$j]."<br>";
                if (substr(strtoupper($tmp2[$j]), 0, 7) == "ENGINE=") {
                    $tmp2[$j] = "TYPE=" . substr($tmp2[$j], 7);
                }
                if (substr(strtoupper($tmp2[$j]), 0, 8) == "CHARSET=") {
                    $tmp2[$j] = "";
                    $tmp2[$j - 1] = save_bracket($tmp2[$j - 1]);
                }
                if (substr(strtoupper($tmp2[$j]), 0, 8) == "COLLATE=") {
                    $tmp2[$j] = save_bracket($tmp2[$j]);
                    if (isset($tmp2[$j + 1])) {
                        $tmp2[$j + 1] = save_bracket($tmp2[$j + 1]);
                    }
                    $tmp2[$j - 1] = "";
                }
            }
            $tmp[$i] = implode(" ", $tmp2);
        }
        // collate entfernen
        if (strpos($t, "collate")) {
            $tmp2 = explode(" ", $tmp[$i]);
            $end = false;
            for ($j = 0; $j < count($tmp2); $j++) {
                if (strtolower($tmp2[$j]) == "collate") {
                    $tmp2[$j] = save_bracket($tmp2[$j]);
                    $tmp2[$j + 1] = save_bracket($tmp2[$j + 1]);
                }
            }
            $tmp[$i] = implode(" ", $tmp2);
        }
        // character Set sprache  entfernen
        if (strpos($t, "character set")) {
            $tmp2 = explode(" ", $tmp[$i]);
            $end = false;
            for ($j = 0; $j < count($tmp2); $j++) {
                if (strtolower($tmp2[$j]) == "character") {
                    $tmp2[$j] = '';
                    $tmp2[$j + 1] = save_bracket($tmp2[$j + 1]);
                    $tmp2[$j + 2] = save_bracket($tmp2[$j + 2]);
                }
            }
            $tmp[$i] = implode(" ", $tmp2);
        }
        if (strpos($t, "timestamp")) {
            $tmp2 = explode(" ", $tmp[$i]);
            $end = false;
            for ($j = 0; $j < count($tmp2); $j++) {
                if ($end) {
                    $tmp2[$j] = "";
                }
                if (strtolower($tmp2[$j]) == "timestamp") {
                    $tmp2[$j] = "TIMESTAMP(14)";
                    $end = true;
                }
            }
            $tmp[$i] = implode(" ", $tmp2);
        }
    }
    $t = implode(",", $tmp);
    if (substr(rtrim($t), -1) != ";") {
        $t = rtrim($t) . ";";
    }
    //	if (strpos($t,'en_rules')) die ("<hr>".$t."</hr>");
    return $t;
    //	}
}