繁体   English   中英

使用php将xml数据转换为mysql插入/更新查询

[英]convert xml data into mysql insert/update query using php

我正在从事这个项目,该项目基本上是从xml文件读取数据并将数据插入/更新到mysql数据库中的。

这是sample.xml文件:

<table name="movies">
    <column name="movie_name">Titanic</column>
    <column name="dvd">40</column>
    <column name="blueray">5</column>
    <column name="netflix">4</column>
    <column name="amazon">3</column>
</table>

我将问题分解为:1)从XML文件获取值。 2)将提取的值插入mysql数据库。

我可以将值插入数据库,但是困难的部分是从xml获取值,这使我发疯。

这是我的数据库表,看起来像:

数据库名称:电影列:movie_name,dvd,blueray,netflix,亚马逊

这是我尝试从xml提取属性值的代码。

<?php
$source = 'sample.xml';
// load as string
$xml = new SimpleXMLElement($source,null,true);
$movie_name= $xml->column->attributes()->name;
echo $movie_name. "\n";
?>

输出:我没有得到电影“泰坦尼克号”的名称,而是得到了“ movie_name”。

您将完全得到您的要求。 attribute()查看属性,name给您属性的名称。 您可以通过这样做来获得名称

$movieName = (string)$xml->column;

如果需要所有值,可以遍历各列

foreach($xml->column as $xColumn) {
  $value = (string)$xColumn;
}

名称属性的值是movie_name。 泰坦尼克号是具有名称属性和值的Column元素的值。

您可以使用以下查询:

<?php
$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;

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM