我需要一些帮助才能将银行RSS输入到我的数据库中。我尝试过一些东西,但我似乎无法让它发挥作用。
rss Feed来自http://www.bankofcanada.ca/stats/assets/rates_rss/noon/en_all.xml
<?php
//Find and grab needed libraries and files.
require_once('proxy_bypass.php');
require_once ('config.php');
$url = $BOCRSS; // Bank of Canada RSS.
$rss = @simplexml_load_string(get_file($url)); // Get the rss feed data.
if($rss) {
foreach($rss->item as $entry) { //For each RSS item in the rss xml file.
$cb = $entry->children('http://www.cbwiki.net/wiki/index.php/Specification_1.1');
//var_dump($cb);
//die();
$code = $entry[targetCurrency];
$curr = $entry[value];
//echo $curr .' '. $code . '<br/>'; //Can be deleted - prints out data.
$dbc = mysql_connect($db_host,$db_user,$db_password); //Connect to Shares.
mysql_select_db($db_name, $dbc); //Select database.
$qry = "INSERT INTO $db_table (currencycode,rate) VALUES ('$code', '$curr')"; //Creates the query.
if (!$dbc){
die('Could not connect: ' . mysql_error()); // Echo this is the connection to the database can't be made.
}
if (mysql_query($qry, $dbc)) {
echo "Database created"; // Echo this if the RSS feed in placed in the database.
}
else {
echo "Error creating database: " . mysql_error(); //Otherwise say this.
}
mysql_close($dbc); // Close the database connection.
}
} else echo "Error with RSS feed"; //Echo error if RSS is unreachable.
?>
我包含的两个文件让我通过我大学的代理服务器,配置包含我的mysql数据库详细信息和rss feed的URL。
var转储给了我:
object(SimpleXMLElement)#63(1){[“statistics”] =&gt; object(SimpleXMLElement)#65(2){[“country”] =&gt; string(2)“CA”[“exchangeRate”] =&gt; object(SimpleXMLElement)#66(5){[“value”] =&gt; string(6)“1.0029”[“baseCurrency”] =&gt; string(3)“CAD”[“targetCurrency”] =&gt; string(3)“USD”[“rateType”] =&gt; string(24)“加拿大银行中午率”[“observationPeriod”] =&gt; string(25)“2012-02-01T12:15:00-05:00”}}}
现在我是PHP的初学者,所以它可能都错了。我试图将'targetCurrency'和'value'放到我的数据库中,但我得到的是50多个空行。它必须意味着正在生成数据库,但没有任何进展。 如果有人可以更改代码以使其工作,我将非常感激,因为我试图让它工作但无济于事。
答案 0 :(得分:0)
你不应该使用$ cb(每个项目的第一个子节点)而不是$ element吗?
$code = $cb['targetCurrency'];
$curr = $cb['value'];
另外,请使用类似mysql_real_escape_string($rss_field_value)
的内容来转义您在SQL查询中放置的值,以防止SQL注入。