Php 将XML导入MySQL数据库
我不熟悉编码,试图从一个XML文件创建一个数据库,该文件是一个行业、公司名称和符号列表。我看到了一些PHP代码示例,这些代码将数据导入MySQL,如下所示:Php 将XML导入MySQL数据库,php,mysql,xml,database,import,Php,Mysql,Xml,Database,Import,我不熟悉编码,试图从一个XML文件创建一个数据库,该文件是一个行业、公司名称和符号列表。我看到了一些PHP代码示例,这些代码将数据导入MySQL,如下所示: <?php $url ="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.industry%20where%20id%20in%20(select%20industry.id%20from%20yahoo.finance.sec
<?php
$url ="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.industry%20where%20id%20in%20(select%20industry.id%20from%20yahoo.finance.sectors)&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url); //getting url contents
$data = curl_exec ($ch); //execule curl request
curl_close($ch);
$xml = simplexml_load_string($data);
$con=mysql_connect("localhost", "root", ""); //connect to server
mysql_select_db("symbol_list", $con) or die(mysql_error()); //select database
foreach ($xml -> item as $row) {
$industry = $row -> industry;
$company = $row -> name;
$symbol = $row -> symbol;
// perform sql query
$sql = "INSERT INTO 'symbols_xml' ('industry', 'company', 'symbol')"
. "VALUES ('$industry', '$company', '$symbol')";
$result = mysql_query($sql);
if (!$result) {
echo 'MySQL ERROR';
} else {
echo 'SUCCESS';
}
}
?>
#| Industry | Company | Symbol
-|----------- ------------ -------
1| Aluminium | Alcoa Inc. | AA.BA
等等
我最近刚开始学习PHP和数据库,所以如果这是一个浪费您时间的愚蠢问题,请原谅我。xD
谢谢。实际上你离得不远 要获取属性,可以通过两种方式进行:
$node['attributeName']
$node->attributes()->attributeName代码>
<?php
$url ="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.industry%20where%20id%20in%20(select%20industry.id%20from%20yahoo.finance.sectors)&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url); //getting url contents
$data = curl_exec ($ch); //execule curl request
curl_close($ch);
$xml = simplexml_load_string($data);
$con=mysql_connect("localhost", "root", ""); //connect to server
mysql_select_db("symbol_list", $con) or die(mysql_error()); //select database
foreach ($xml->results->industry as $industryNode)
{
foreach ($industryNode->company as $companyNode)
{
$industry = (string) $industryNode['name'];
$company = (string) $companyNode['name'];
$symbol = (string) $companyNode['symbol'];
// perform sql query
$sql = "INSERT INTO 'symbols_xml' ('industry', 'company', 'symbol')"
. "VALUES ('$industry', '$company', '$symbol')";
$result = mysql_query($sql);
if (!$result)
{
echo 'MySQL ERROR';
}
else
{
echo 'SUCCESS';
}
}
}
results->industry as$industryNode)
{
foreach($industryNode->companyas$companyNode)
{
$industry=(字符串)$industryNode['name'];
$company=(字符串)$companyNode['name'];
$symbol=(字符串)$companyNode['symbol'];
//执行sql查询
$sql=“插入到“符号xml”(“行业”、“公司”、“符号”)中”
"价值("工业","公司","符号");;
$result=mysql\u查询($sql);
如果(!$result)
{
回显“MySQL错误”;
}
其他的
{
呼应"成功",;
}
}
}
非常感谢!这个“节点”的东西似乎很有效,因为现在我至少从一个“if”语句中得到了一个“MySQL错误”消息。你知道mysql\u查询有什么错吗?做一个echo$sql在第二个foreach循环中添加echo die(mysql_error())如果使用if(!$result)
语句,则代码>在内部。您还可以复制粘贴输出到您喜爱的mysql客户端的查询,并查看错误。太棒了,再次感谢。问题在于语法错误-不应该在$sql=“INSERT-INTO'symbols\u xml”(行业、公司、符号)中添加“around column names”,这样做的代码要简单得多。PHP将XML文件导入数据库-
<?php
$url ="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.industry%20where%20id%20in%20(select%20industry.id%20from%20yahoo.finance.sectors)&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url); //getting url contents
$data = curl_exec ($ch); //execule curl request
curl_close($ch);
$xml = simplexml_load_string($data);
$con=mysql_connect("localhost", "root", ""); //connect to server
mysql_select_db("symbol_list", $con) or die(mysql_error()); //select database
foreach ($xml->results->industry as $industryNode)
{
foreach ($industryNode->company as $companyNode)
{
$industry = (string) $industryNode['name'];
$company = (string) $companyNode['name'];
$symbol = (string) $companyNode['symbol'];
// perform sql query
$sql = "INSERT INTO 'symbols_xml' ('industry', 'company', 'symbol')"
. "VALUES ('$industry', '$company', '$symbol')";
$result = mysql_query($sql);
if (!$result)
{
echo 'MySQL ERROR';
}
else
{
echo 'SUCCESS';
}
}
}