我有一个api,我发送到数据库,结果以xml格式返回,这很好用,我可以将结果输出到屏幕上没有问题。 xml Feed是属性详细信息列表。我想要做的是使用下面的代码将结果存储在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结构的链接,正如您将看到我的测试我只是尝试插入前几个项目。
答案 0 :(得分:0)
首先:在feeds数组中,有一些空格,这可能会导致解析url并返回404错误或其他问题(不确定,但检查一下)
第二:在查询中,删除''
,因为你有4列,传递了5个变量
第三:您可能希望通过在分号之前的查询之后添加or die(mysql_error())
来查看MySQL错误
第四:考虑用mysqli或PDO替换mysql
答案 1 :(得分:0)
这正是您所需要的:)
我希望你喜欢它
$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 ;)