browser lang:en
Questo piccolo script serve per convertire un intero Database MySql in una serie di files XML.
In pratica viene generato un file xml per ogni tabella corrispondente nel Database, ad esempio nel caso avessimo una tabella "amici" con campi "id" e "titolo", la struttura dell'xml generato sarebbe questa:
<?xml version="1.0"?>
<amici>
<record>
<id>1</id>
<titolo><![CDATA[ Pippo ]]></titolo>
</record>
<record>
<id>2</id>
<titolo><![CDATA[ Pluto ]]></titolo>
</record>
....
</amici>
$hostname = "hostname";
$database = "database";
$username = "username";
$password = "password";
// Directory where we write the xml files
$directory = "/xml/";
$cnConnection = mysql_pconnect($hostname, $username, $password);
//Conn control
if (!$cnConnection) {
print 'Could not connect to mysql';
exit;
}
//Read all tables
$result = mysql_list_tables($database);
if (!$result) {
print "DB Error, could not list tables\n";
print 'MySQL Error: ' . mysql_error();
exit;
}
//Start print all tables
while ($row = mysql_fetch_row($result)) {
$fields = mysql_list_fields($database, $row[0], $cnConnection);
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++) {
$colonnaTabella[] = mysql_field_name($fields, $i);
$tipoColonna[] = mysql_field_type($fields, $i);
}
// CONNECT TO DATABASE
mysql_select_db($database, $cnConnection);
$query_rsRecordset = "SELECT * FROM ".$row[0];
$rsRecordset = mysql_query($query_rsRecordset, $cnConnection) or die(mysql_error());
$row_rsRecordset = mysql_fetch_assoc($rsRecordset);
$totalRows_rsRecordset = mysql_num_rows($rsRecordset);
// START STORING DATA IN VARIABLE TO PLACE IN XML FILE
if($totalRows_rsRecordset > 0) {
$strXML = "<?xml version=\"1.0\"?>\n";
// STORE NAME OF TABLE
$strXML = $strXML . " <".$row[0].">\n";
// STORE FIELD AND FIELD DATA IN ONE HIARCHY, REPEAT FOR MULTIPLE FIELDS
do {
$strXML = $strXML . " <record>\n";
foreach ($colonnaTabella as $key => $value) {
//Select the type of column and relative results
$kindOfColumn = $tipoColonna[$key];
switch ($kindOfColumn){
case 'string':
$strXML = $strXML." <".$value."><![CDATA[".$row_rsRecordset[$value]."]]></".$value.">\n";
break;
case 'blob':
$strXML = $strXML." <".$value."><![CDATA[".$row_rsRecordset[$value]."]]></".$value.">\n";
break;
default:
$strXML = $strXML." <".$value.">".$row_rsRecordset[$value]."</".$value.">\n";
}
}
$strXML = $strXML . " </record>\n";
} while ($row_rsRecordset = mysql_fetch_assoc($rsRecordset));
$strXML = $strXML . " </".$row[0].">";
// OPEN FILE, WRITE TO FILE, CLOSE FILE, CLOSE RECORDSET
$XMLFile = fopen($_SERVER['DOCUMENT_ROOT'].$directory.$row[0]."_xml.xml", "w") or die("can't open file");
fwrite($XMLFile, $strXML);
fclose($XMLFile);
}
mysql_free_result($rsRecordset);
//Empty the arrays
$colonnaTabella = array();
$tipoColonna = array();
}
mysql_free_result($result);
echo 'Db Processed...';
Con l'avvento di caffeine molti webmaster si sono trovati a dover rivedere tutte le strategie SEO per i…
in:Scripts e tutorials (0 commenti)test
in:PHP Scripts (0 commenti)Artweaver è un programma di disegno dotato di un'infinità di pennelli con cui sperimentare nuove tecniche grafiche.…
in:Software Open Source (0 commenti)Con Bind, la configurazione di domini e sottodomini è abbastanza semplice....l'elemento più importante è il cosidetto zone-file, che…
in:Apache (0 commenti)hkit é un tool, o meglio, una classe in PHP5 per la estrazione dei piú comuni microformati. La pagina…
in:PHP Scripts (0 commenti)Dopo circa un anno ho ritirato i certificati che attestano i miei corsi di Java...purtroppo manca il terzo…
in:Blog (3 commenti)SVNWeaver é una estensione per Dreamweaver che permette di integrare il TortoiseSVN nei menú del Dreamweaver. Devo dire…
in:Applicazioni di sviluppo web (0 commenti)Questo è un widget di jQuery per il nuovo social network di Google-Buzz-che è possibile incorporare ovunque per…
in:Scripts e tutorials (0 commenti)
