2017-06-11 6 views
0

質問: RSSフィードをフェッチしてMySQLに挿入する方法は?

RSSフィード(この場合はkotakus rssフィード(kotaku.com/vip.xml))からデータを取得して挿入したいと考えています。SQL - RSSフィードを取得してSQLに挿入する

現在:私はPDOの方法でエラーを取得: 解析エラー:構文エラー、予期しない '(' Dで:ライン11

の\ xamppの\ htdocsに\のxml \のsql_pdo.php私はコードを紹介します三つのステップのために。まず現在取り組んでいるデータをフェッチする。はセカンドのmySQL(現在は動作していない)に&挿入データをフェッチするPDO方法である。サードは2と同じであるが、どちらか動作していない(代わりにカールを使用して)私はMySQLデータベースのPhpMyAdminとXamppを使用しています。私はちょうど第2または第3の方法か別の方法を働かせたいです。結果を得る。

まずコード:

<?php 
$xml= simplexml_load_file("http://kotaku.com/vip.xml"); 
foreach($xml->channel->item as $itm){ 
    $title = $itm->title; 
    $description = $itm->description; 
    echo $title; 
    echo $description; 
} ?> 

セカンド(PDO)

<?php 
$db = new PDO('mysql:host=localhost;dbname=simpledata','root','123456'); 

$xmldoc = new DOMDocument(); 
$xmldoc = load('http://kotaku.com/vip.xml'); 

$xmldata = $xmldoc->getElementsByTagName('channel'); 
$xmlcount = $xmldata->length; 

for ($i=0; $i < $xmlcount; $i++) { 
    $title = $xmldata->item($i)->getElementsByTagName('title')(0)->childNodes->item(0)->nodeValue; 
    $description = $xmldata->item($i)->getElementsByTagName('description')(0)->childNodes->item(0)->nodeValue; 

    $stmt = $db->prepare("insert into kotaku values(?,?)"); 
    $stmt->bindParam(1,$title); 
    $stmt->bindParam(1,$description); 
    $stmt->execute(); 
    printf($title); 
} ?> 

サード(CURL)

<?php 

$url="http://kotaku.com/vip.xml"; //need complete 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl-setopt($ch, CURLOPT_URL, $url); //get the url contents 

$data = curl_exec ($ch); //execute curl request 
curl_close($ch); 

$xml = simplexml_load_string($data); 

$con=mysql_connect("localhost","root","123456"); //connect to server 
mysql_select_db("simpledata", $con) or die (mysql_error()); //select database 

foreach ($xml -> item as $row) { 
    $title = $row -> title; 
    $description = $row -> description; 

// performing sql query 

$sql = "INSERT INTO 'kotaku' ('title', 'description')" 
     . "VALUES ('$title', '$description')"; 

$result = mysql_query($sql); 
if (!$result) { 
    echo 'MySQL ERROR'; 
    } else { 
    echo 'SUCCES'; 
    } 
?> 
+0

申し訳ありませんが、PDOメソッドでエラーが発生しました。 解析エラー:構文エラー、予期しない「(」Dで:\ xamppの\ htdocsに\ XML \ sql_pdo.phpライン上の11 –

答えて

1

あなたはデータバインディングのタイプを指定せずにPDO bindParamを使用傾けます。 代わりにbindValueを使用してください:

$stmt->bindValue(1, $title); 
    $stmt->bindValue(2, $description); 
+0

私は、私はPDOメソッドでエラーが出ると言うのを忘れて申し訳ありません 解析エラー:構文エラー、予期しない '(D:\ xampp \ htdocs \ xml \ sql_pdo.php 11行目) そのメソッドを使用している場合でも、Michael Dawn –

+0

11行目のコードは? –

+0

$ title = $ xmldata-> item $ 0) - > getElementsByTagName( 'title')(0) - > childNodes-> item(0) - > nodeValue; @michael dawn –

関連する問題