Получение банка RSS-канал в моей базе данных MySQL с php? - PullRequest
0 голосов
/ 02 февраля 2012

Мне нужна помощь, чтобы получить банковский RSS-канал в мою базу данных.Я попробовал несколько вещей, но я просто не могу заставить его работать.

Канал rss от 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 и URL-адреса для подачи RSS.

Дамп var дает мне это:

объект (SimpleXMLElement) # 63 (1) {["statistics"] => object (SimpleXMLElement) # 65 (2) {["country"] => string (2) "CA" ["exchangeRate"] => object (SimpleXMLElement) # 66 (5){["value"] => string (6) "1.0029" ["baseCurrency"] => string (3) "CAD" ["targetCurrency"] => string (3) "USD" ["rateType"] =>string (24) "Скорость полудня Банка Канады" ["translationPeriod"] => string (25) "2012-02-01T12: 15: 00-05: 00"}}}

СейчасЯ новичок в PHP, так что, вероятно, все неправильно.Я пытаюсь получить 'targetCurrency' и 'value' в свою базу данных, но все, что я получаю, это более 50 пустых строк.Это должно означать, что база данных генерируется, но ничего не происходит. Если кто-то может изменить код, чтобы он заработал, я был бы очень признателен, поскольку пытался заставить его работать, но безрезультатно.

1 Ответ

0 голосов
/ 02 февраля 2012

Разве вы не должны использовать $ cb (ваши первые дочерние узлы каждого элемента) вместо $ element?

$code = $cb['targetCurrency'];
$curr = $cb['value'];

Также, пожалуйста, используйте что-то вроде mysql_real_escape_string($rss_field_value) для экранирования значений, которые вы вводите в свои SQL-запросы, чтобы предотвратить внедрение SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...