2009-07-14 63 views
0

我已經從下面的代碼中自動生成了一個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文件?

回答

2

使用DOMDocument::saveXML()獲取xml文件的字符串表示形式,並將此字符串插入到數據庫的approrpiate列中。根據您的數據大小,使用TINYBLOB(2^8字節),BLOB(2^16字節),MEDIUMBLOB(2^24字節)或LONGBLOB(2^32字節)類型的列(如果使用MySQL或適當的數據類型在您選擇的RDBMS中)。

-2

我認爲把它存儲在數據庫中是沒有意義的,如果你使用來自另一個問題的解決方案,即單個文件問題已解決(再次!!),如果將它存儲在數據庫中並從中獲取那裏或任何這可能也工作,甚至更好的解決方案,但這不會解決您的問題與錯誤的值,因爲這個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

0
<?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. 
相關問題