如何将xml文件存储到mysqldatabase中并检索它?

问题描述:

我已经从下面的代码中自动生成了一个XML文件。如何将xml文件存储到mysqldatabase中并检索它?

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> 

请告诉我如何存储和检索MySQL数据库这个playlist.xml文件?

使用DOMDocument::saveXML()获取xml文件的字符串表示形式,并将此字符串插入到数据库的approrpiate列中。根据您的数据大小,使用TINYBLOB(2^8字节),BLOB(2^16字节),MEDIUMBLOB(2^24字节)或LONGBLOB(2^32字节)类型的列(如果使用MySQL或适当的数据类型在您选择的RDBMS中)。

我认为把它存储在数据库中是没有意义的,如果你使用来自另一个问题的解决方案,即单个文件问题已解决(再次!!),如果将它存储在数据库中并从中获取那里或任何这可能也工作,甚至更好的解决方案,但这不会解决您的问题与错误的值,因为这个PHP脚本将获得完全相同的值作为另一个,它将导致完全相同的事情。

还是那句话:

检查代码您发布PHP脚本中的数据!

+1

-1什么是所有的大喊大叫? – 2009-07-14 08:44:53

+0

对不起,如果我问这么多次 但我在这里尝试... befor你给了使用microtime()函数的解决方案.....其实很高的 但我不知道为什么,它创建xml文件每次,但其不访问该文件。它只显示我们将首先选择的播放列表。 – musicking123 2009-07-14 08:47:22

+0

看看他的其他问题。 有很多事情可能会出错: 后脚本再次发送相同的数据 - >你得到相同的东西 Flash不加载正确的XML - >你得到相同的东西 缓存问题。 也许其他的事情,但没有一个必须对此做任何事情。如果另一个脚本做错了,以另一种方式将相同的数据传递给闪存不会使它更好。在这里进行调试或者显示其他文件,这个人可以帮助你。 – Flo 2009-07-14 08:55:02

改为使用DOMDocument->saveXML method作为字符串获取XML文档。

<?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.