Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP从XML文件更新MySQL_Php_Mysql_Xml - Fatal编程技术网

使用PHP从XML文件更新MySQL

使用PHP从XML文件更新MySQL,php,mysql,xml,Php,Mysql,Xml,我在这里阅读了许多有用的答案,其中大部分帮助我创建了从XML文件导入数据的脚本。问题是,这一次我有额外的部分图像url的巫婆也需要更新到MySQL 现在,我使用XML中的数据更新MySQL,然后使用其他脚本下载所需的图像。在使用XML提要的网站改变了它们的结构后,我很难弄清楚如何将数组中的图像url更新到MySQL行中,以便在之后可以下载图像。 即使我选择下载图片而不更新到MySQL,我也不能下载它们 这是XML结构 <ArrayOfUnitDTO xmlns:xsi="http://ww

我在这里阅读了许多有用的答案,其中大部分帮助我创建了从XML文件导入数据的脚本。问题是,这一次我有额外的部分图像url的巫婆也需要更新到MySQL
现在,我使用XML中的数据更新MySQL,然后使用其他脚本下载所需的图像。在使用XML提要的网站改变了它们的结构后,我很难弄清楚如何将数组中的图像url更新到MySQL行中,以便在之后可以下载图像。 即使我选择下载图片而不更新到MySQL,我也不能下载它们

这是XML结构

<ArrayOfUnitDTO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <UnitDTO>
    <Category>Category name</Category>
    <code>863</code>
    <Status>Blocked</Status>
    <RefNo>12345</RefNo>
    <Images>
      <Image>
        <Title>Community</Title>
        <ImageURL>http://imageaddress.com/images/watermark.aspx?imageurl=/uf/1015/GroupUpdate/unit/350/350_Image.jpg&amp;width=640&amp;group=1015&amp;module=1&amp;watermarktype=default&amp;position=Center</ImageURL>
      </Image>
      <Image>
        <Title>Local Area Image</Title>
        <ImageURL>http://imageaddress.com/images/watermark.aspx?imageurl=/uf/1015/GroupUpdate/unit/631/631_Image.jpg&amp;width=640&amp;group=1015&amp;module=1&amp;watermarktype=default&amp;position=Center</ImageURL>
      </Image>
    </Images>
  </UnitDTO>
</ArrayOfUnitDTO>
我在用这个

foreach ($listings ->UnitDTO as $listingInfo) //loop read xml
{
            $RefNo =  $listingInfo->RefNo;
            $Category = $listingInfo->Category;
            $code = $listingInfo->code;
            $Status = $listingInfo->Status;

 mysqli_query($link,"REPLACE INTO UnitDTO (`RefNo`, `Category`, `code`, `Status`) VALUES ('$RefNo', '$Category', '$code', '$Status',)") or die(mysqli_error($link));

}

无论我尝试了什么,我都无法将图像url导入数组中的
imageurl
MySQL行

若要从上述xml获取图像url,您必须再运行一个foreach循环,请尝试下面的代码,并根据需要使用它

foreach ($listings ->UnitDTO as $listingInfo){
    $RefNo =  $listingInfo->RefNo;
    $Category = $listingInfo->Category;
    $code = $listingInfo->code;
    $Status = $listingInfo->Status;
        foreach ($listingInfo->Images->Image as $image){
            echo $image->ImageURL;
        }
}

嗨,拉姆,谢谢你的回答。是的,我已经运行了,但是只下载了第一张图片。有些单元有5张和6张图片。这是主要的问题。它是foreach循环,你会得到所有的图像,只要尝试一下,我已经尝试过了,然后再试一次。当我使用echo时,有所有的图像,但当我更新MySQL时,只有一个图像。如果我使用INSERT而不是REPLACE,我将获得密钥“PRIMARY”的错误重复条目“AP3147”。所以它尝试多次使用相同的条目。