将 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 ;)
我有一个 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 ;)