2011-03-03 92 views
0

我似乎無法弄清楚如何保存我與DOM對象到我的數據庫生成一個XML文件..如何使用PHP將動態生成的XML文檔保存到數據庫?

這是我的PHP:

$xmlraw = $doc->saveXML(); 

$xmlQuery=sprintf("INSERT INTO xmlTestTable (XMLString) VALUES ('%s')", $xmlraw); 

$result = mysql_query($xmlQuery); 

我也試過:

$xmlQuery=sprintf("INSERT INTO xmlTestTable (XMLString) VALUES ('%s')", $doc->saveXML()); 

$result = mysql_query($xmlQuery); 

其中$doc是我創建的XML文檔。

我能看到XML輸出在瀏覽器中,當我這樣做:

echo $doc->saveXML(); 

有沒有被輸出錯誤或什麼...

我的MySQL列,這被注入成長文本

預先感謝您!

回答

4

首先,你需要獲得的XML字符串,使用,你猜到了,saveXML()方法:

$xmlraw = $doc->saveXML(); 


然後,你需要插入該值;但你必須正確地轉義它

轉義字符串以將其注入到SQL查詢中,您可以使用由用於連接到數據庫的API提供的特定功能執行此操作 - 正如您使用的mysql_*函數一樣,您將使用mysql_real_escape_string()

$escapedString = mysql_real_escape_string($xmlraw); 


現在,你可以注入到你的SQL查詢字符串:

$query = "INSERT INTO xmlTestTable (XMLString) VALUES ('$escapedString')"; 

你也可以用sprintf,像你這樣的,當然。

1

請轉義xml與mysql_real_escape_string - 這將解決您的問題,它會爲您節省SQL注入攻擊。

相關問題