示例#1
0
文件: mysql.php 项目: gblok/rsc
function db_get_all_ss_tables($xmlFileName)
{
    $res = array();
    $tables = db_get_all_tables();
    $xmlNodeTableArray = GetXmlTableNodeArray($xmlFileName);
    foreach ($xmlNodeTableArray as $xmlNodeTable) {
        $attr = $xmlNodeTable->GetXmlNodeAttributes();
        $existFlag = false;
        foreach ($tables as $tableName) {
            if (strtolower($attr["NAME"]) == $tableName) {
                $existFlag = true;
            }
        }
        if ($existFlag) {
            $res[] = $attr["NAME"];
        }
    }
    return $res;
}
示例#2
0
function ReWriteInstallXmlFile($xmlFileName, $tableIncFile, $targetFile)
{
    include $tableIncFile;
    $xmlTableNodeArray = GetXmlTableNodeArray($xmlFileName);
    $f = fopen($targetFile, "w");
    fwrite($f, "<DataBaseStructure ApplicationVersion='ShopCMS'>\n");
    fwrite($f, "\n");
    fwrite($f, "\t<tables>\n");
    foreach ($xmlTableNodeArray as $xmlTableNode) {
        $attributes = $xmlTableNode->GetXmlNodeAttributes();
        $xmlTableDefinition = "";
        if (defined($attributes["ALIAS"])) {
            $xmlTableDefinition .= "\t\t<table name='" . constant($attributes["ALIAS"]) . "' alias='" . $attributes["ALIAS"] . "' ";
        } else {
            $xmlTableDefinition .= "\t\t<table name='" . $attributes["NAME"] . "' alias='" . $attributes["ALIAS"] . "' ";
        }
        foreach ($attributes as $key => $val) {
            if ($key != "ALIAS" && $key != "NAME") {
                $xmlTableDefinition .= " " . $key . "='" . $val . "' ";
            }
        }
        $xmlTableDefinition .= "> \n";
        $xmlTableColumnNodeArray = $xmlTableNode->SelectNodes("table/column");
        foreach ($xmlTableColumnNodeArray as $xmlTableColumnNode) {
            $xmlTableDefinition .= "\t\t\t<column ";
            $attributes = $xmlTableColumnNode->GetXmlNodeAttributes();
            foreach ($attributes as $key => $value) {
                $xmlTableDefinition .= $key;
                $xmlTableDefinition .= "=";
                $xmlTableDefinition .= "'{$value}' ";
            }
            $xmlTableDefinition .= ">";
            $columnName = $xmlTableColumnNode->GetXmlNodeData();
            $xmlTableDefinition .= trim($columnName);
            $xmlTableDefinition .= "</column>\n";
        }
        $xmlForeignKeyNodeArray = $xmlTableNode->SelectNodes("table/ForeignKey");
        foreach ($xmlForeignKeyNodeArray as $xmlForeignKeyNode) {
            $xmlTableDefinition .= "\t\t\t<ForeignKey ";
            $attributes = $xmlForeignKeyNode->GetXmlNodeAttributes();
            foreach ($attributes as $key => $value) {
                $xmlTableDefinition .= $key;
                $xmlTableDefinition .= "=";
                $xmlTableDefinition .= "'{$value}' ";
            }
            $xmlTableDefinition .= ">";
            $foreignKeyColumnName = $xmlForeignKeyNode->GetXmlNodeData();
            $xmlTableDefinition .= trim($foreignKeyColumnName);
            $xmlTableDefinition .= "</ForeignKey>\n";
        }
        $xmlTableDefinition .= "\t\t</table>\n";
        fwrite($f, $xmlTableDefinition);
        fwrite($f, "\n");
    }
    fwrite($f, "\t</tables>\n");
    fwrite($f, "</DataBaseStructure>");
    fclose($f);
}