Как сохранить XML-файл в MySQL и получить его? - PullRequest
0 голосов
/ 14 июля 2009

Я автоматически сгенерировал XML-файл из приведенного ниже кода.

if (isset($_POST["song"])&& $_POST['song'] != "") {
    $song = $_POST["song"];
} else {
    $song = array();
}
$dom = new DOMDocument("1.0");
// display document in browser as plain text 
// for readability purposes

// create root element
$root = $dom->createElement("playlist");
$dom->appendChild($root);
$root->setAttribute('version', "1");
$root->setAttribute('xmlns', "http://xspf.org/ns/0/");
$rootnext = $dom->createElement("trackList");
$root->appendChild($rootnext);
foreach ($song as $counter) {
    $tokens = ",";
    $tokenized = strtok($counter, $tokens);
    // create child element
    $song = $dom->createElement("track");
    $rootnext->appendChild($song);
    $song1 = $dom->createElement("creator");
    $song->appendChild($song1);
    $text = $dom->createTextNode("www.musicking.in");
    $song1->appendChild($text); 
    $song1 = $dom->createElement("title");
    $song->appendChild($song1);
    // create text node
    $text = $dom->createTextNode($tokenized);
    $song1->appendChild($text); 
    $tokenized = strtok($tokens);
    $song1 = $dom->createElement("location");
    $song->appendChild($song1);
    $text = $dom->createTextNode($tokenized);
    $song1->appendChild($text); 
}
$dom->save("playlist.xml");

На самом деле после генерации XML-файла он сохраняется в корневом каталоге.

Подскажите, пожалуйста, как сохранить сгенерированный файл XML в базе данных MySQL?

После генерации XML-файла я должен вызвать этот файл. Я использую код ниже, чтобы позвонить:

<object data="musicplayer.swf?autostart=true&playlist=playlist.xml" type="application/x-shockwave-flash" width="400" height="300">
    <param name="movie" value="musicplayer.swf?autostart=true&playlist=playlist.xml"/>
</object>

Скажите, пожалуйста, как сохранить и получить этот файл playlist.xml из базы данных mysql?

Ответы [ 4 ]

2 голосов
/ 14 июля 2009

Используйте DOMDocument::saveXML(), чтобы получить строковое представление вашего xml-файла и вставить эту строку в столбец approrpiate в вашей базе данных. В зависимости от размера ваших данных используйте столбец типа TINYBLOB (2 ^ 8 байт), BLOB (2 ^ 16 байт), MEDIUMBLOB (2 ^ 24 байт) или LONGBLOB (2 ^ 32 байт). ) (при использовании MySQL или соответствующего типа данных в выбранной вами СУБД).

0 голосов
/ 14 июля 2009
<?php 
if(isset($_POST["song"])&& $_POST['song'] != "") 
    {
        $song = $_POST["song"];
    }
    else {$song=array();} 
$dom = new DOMDocument("1.0");
// display document in browser as plain text 
// for readability purposes

// create root element
$root = $dom->createElement("playlist");
$dom->appendChild($root);
$root->setAttribute('version', "1");
$root->setAttribute('xmlns', "http://xspf.org/ns/0/");
$rootnext = $dom->createElement("trackList");
$root->appendChild($rootnext);
foreach ($song as $counter) {
    $tokens = ",";
    $tokenized = strtok($counter, $tokens);
// create child element

$song = $dom->createElement("track");
$rootnext->appendChild($song);
$song1 = $dom->createElement("creator");
$song->appendChild($song1);
$text = $dom->createTextNode("www.musicking.in");
$song1->appendChild($text); 
$song1 = $dom->createElement("title");
$song->appendChild($song1);
// create text node
$text = $dom->createTextNode($tokenized);
$song1->appendChild($text); 
$tokenized = strtok($tokens);
$song1 = $dom->createElement("location");
$song->appendChild($song1);
$text = $dom->createTextNode($tokenized);
$song1->appendChild($text); 

}
DOMDocument::saveXML();

$con = mysql_connect("localhost","music123_sri","password");
 if (!$con) 
  { die('Could not connect: ' . mysql_error()); } 
mysql_select_db("music123_telugu", $con);
 $sql="INSERT INTO xml (File) VALUES (" . mysql_escape_string($xmlString) . ")"; 
 $data = mysql_query("SELECT File FROM xml")

 $info = mysql_fetch_array( $data );
?>
<object data="musicplayer.swf?autostart=true&playlist=<?php $info ?>"      type="application/x-shockwave-flash" width="400" height="300"><param name="movie"   value="musicplayer.swf?autostart=true&playlist=<?php $info ?>"/></object>



can u check the above code its not working.
0 голосов
/ 14 июля 2009

Вместо этого используйте метод DOMDocument->saveXML , чтобы получить XML-документ в виде строки.

0 голосов
/ 14 июля 2009

я думаю, что нет смысла хранить его в базе данных, если вы используете решение из другого вопроса, что проблема с одним файлом решена (СНОВА !!), если вы храните его в базе данных и получаете его оттуда или что-то еще, что может также работать и, возможно, даже лучшее решение, но это не исправит вашу проблему с неправильными значениями, поскольку этот скрипт php получит ТОЧНО те же значения, что и другой, он приведет к ТОЧНО одинаковому результату.

Еще раз:

ПРОВЕРЬТЕ КОД, ГДЕ ВЫ ПОСТАВЛЯЕТЕ ДАННЫЕ В PHP SCRIPT!

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