2012-04-14 2 views
1

IM вытягивать в данных от корма RSS, я хочу, чтобы добавить название и описание в ту же строку (разные поля) в базе данных MySQLВвод Array профиля в таблице PHP

$result = $xml->xpath('//title'); //finding the title tags in the xml document and loading into variable 
$result1 = $xml->xpath('//description'); //finding the title tags in the xml document and loading into variable 

Я загрузку информации в переменные, но не понимаю, как я могу вставить это в таблицу mysql, называемую данными?

Звучит просто, но я стараюсь как его массив.

+0

Что такое массив? –

+0

Какова структура файла RSS, в котором вы работаете? Вы используете SimpleXML? – nnichols

ответ

2

Попробуйте что-то вдоль этих линий: (ОБНОВЛЕНО)

<?php 
    $con = mysql_connect("localhost","yourdbusername","yourdbpassword"); 
    if (!$con) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("yourdbname", $con); 

    $query = sprintf("INSERT INTO `data` (`title`, `description`) VALUES ('%s','%s');", 
         mysql_real_escape_string($result), 
         mysql_real_escape_string($result1)); 

    mysql_query($query); 

    mysql_close($con); 
?> 
+0

@ Амадан Я обновил свой пост, хотя вы ДЕЙСТВИТЕЛЬНО заставили меня задуматься о том, почему ответ был опущен; честно говоря, все, что я пытался, это еще не путать OP (так как он просто путается по этому вопросу, уже ...) –

+1

Поскольку PHP так же небезопасен, как и он, никто не должен касаться SQL без четкого понимания вещи Бобби Стоута. Обучение кого-то, как делать MySQL, и даже не упоминание SQL-инъекции - это Bad Thing (tm). – Amadan

+0

@ Амадан Тем не менее, я согласен с вашей точкой ... –

0

Предполагая, что ваш стол установлен с колоннами, которые под названием «заголовок» и «описание» вы пытались что-то вроде этого?

$rows=array(); 

foreach($result as $title){ 
    $rows[]="('".mysql_real_escape_string($title)."','".mysql_real_escape_string(array_shift($result1))."')"); 
} 
mysql_query("INSERT INTO data (title, description) VALUES ".implode(',',$rows); 

EDIT: достаточно справедливо;) добавил mysql_real_escape_string

1

Вам нужно будет изменить имена узлов, но это должно сделать это -

<?php 
$db = new PDO('mysql:dbname=test;host=127.0.0.1', 'user', 'pass'); 

$sql = "INSERT INTO tbl (title, description) VALUES (?, ?)"; 
$stmt = $db->prepare($sql); 

$rss = simplexml_load_file('path_to_rss_feed'); 

foreach ($rss->articles as $article) { 
    $stmt->execute(array($article->title, $article->description)); 
}