I am working on this project that basically reads the data from xml file and insert/update the data into mysql database.
Here is the sample.xml file:
Titanic
40
5
4
3
I break down the problem into:
1) Get the values from XML file.
2) Insert the extracted values into mysql database.
I am able to work on insert the values to database, but the hard part is getting the values from xml making me crazy.
Here is my Database Table looks like:
Database name: Movies
Columns: movie_name, dvd, blueray, netflix, amazon
Here is the code that I tried to extract the attribute values from xml.
$source = 'sample.xml';
// load as string
$xml = new SimpleXMLElement($source,null,true);
$movie_name= $xml->column->attributes()->name;
echo $movie_name. "\n";
?>
Output:
Instead of getting the name of movie "Titanic", I get "movie_name".
解决方案
You can use this query:
$source = 'sample.xml';
// load as string
$xml = new SimpleXMLElement($source,null,true);
$movie_name= $xml->column->attributes()->name;
//echo $movie_name. "\n";
$table = $xml->attributes()->name;
$columns ="";
foreach($xml as $column){
$columns .= (string)$column->attributes()->name .",";
}
$columns = rtrim($columns, ",");
$values ="";
foreach($xml->column as $value){
$values .= $value ."," ;
}
$values = rtrim($values, ",");
$query = " INSERTO INTO $table ( $columns ) VALUES ( $values ) ";
echo $query;
?>