将 simplexml 解析为 MYSQL

Parse simplexml into MYSQL

我有一个 api,我将其发送到数据库,结果以 xml 格式返回,这工作正常,我可以毫无问题地将结果输出到屏幕。 xml 提要位于 属性 详细信息列表中。我想做的是使用下面的代码将结果存储在 mysql 数据库中。

  $feeds = array('http://web.demo.net/ademo_search.xml?  &upw=123456');
 foreach( $feeds as $feed ) {
$xml = simplexml_load_file($feed);

foreach($xml->channel->item as $item)
{

mysql_query("INSERT INTO property1 (id, department, branch, address1) 
VALUES (
    '', 
    '".mysql_real_escape_string($item->id)."', 
    '".mysql_real_escape_string($item->department)."', 
    '".mysql_real_escape_string($item->branch)."', 
    '".mysql_real_escape_string($item->address1)."')");       
     }
  }

当我 运行 此代码时,我没有收到错误,数据也没有添加到数据库中。

这里是 xml 结构的 link,正如您将在我的测试中看到的那样,我只是尝试插入前几项。

首先:在feeds数组中,有一些空格,这可能会导致解析url和return 404错误或其他问题(不确定,但检查一下)

第二个:在查询中,删除 '' 因为您有 4 列,其中传递了 5 个变量

第三:您可能希望通过在分号

之前的查询之后添加 or die(mysql_error()) 来查看 MySQL 错误

第四:考虑用mysqli或PDO

替换mysql

这正是您所需要的:)

希望你喜欢

$feed = "test.xml";
$xml = simplexml_load_file($feed);

$arr = array();
$i = 0;
foreach($xml->houses->property as $item){
    $arr[$i][] = (string) $item->id;
    $arr[$i][] = (string) $item->department;
    $arr[$i][] = (string) $item->branch;
    $arr[$i][] = (string) $item->address->address1;
    $i++;
}
var_dump($arr); // now you have them in an array .. store them in db ;)