2012-04-17 51 views
0

我想插入 xml值到sql中使用php。插入xml文件到sql中

這是XML的例子:

<?xml version="1.0" encoding="utf-8" ?> 
<contacts> 
<con> 
    <id>1</id> 
    <name>user_name</name> 
    <city>city_name</city> 
    <street>street_name</street> 
    <phone1>phone_number1</phone1> 
    <phone2>phone_number2</phone2> 
    <phone3 /> 
    <phone4 /> 
    </con> 


    <con> 
    <id>2</id> 
    <name>user_name</name> 
    <city>city_name</city> 
    <street>street_name</street> 
    <phone1>phone_number1</phone1> 
    <phone2>phone_number2</phone2> 
    <phone3 /> 
    <phone4 /> 
    </con> 

    </contacts> 

我做出這樣的SQL,所以我想在其中插入數據:

CREATE TABLE IF NOT EXISTS `contacts` (
    `id` int(11) NOT NULL auto_increment, 
    `name` varchar(250) NOT NULL, 
    `city` varchar(250) NOT NULL, 
    `street` varchar(250) NOT NULL, 
    `phone_1` text NOT NULL, 
    `phone_2` text NOT NULL, 
    `phone_3` text NOT NULL, 
    `phone_4` text NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=cp1256 AUTO_INCREMENT=1 ; 

我可以做這個工作用PHP?我該怎麼做?

感謝

+0

您將其作爲任何其他數據插入。你有嘗試過什麼嗎?也接受你的問題的答案! – 2012-04-17 13:23:37

+0

您可以在PHP中使用DOMDocument擴展。 http://php.net/manual/en/class.domdocument.php然後你可以遍歷每個節點並適當地插入它。 – DarkMantis 2012-04-17 13:24:43

+0

接受解決您的問題的答案。想想你的幫助你的程序員吧! – Manuel 2012-04-18 09:31:28

回答

0

的所有phone_3phone_4首先是NOT NULL在數據庫中,並在XML沒有設置。

你可以通過在你的php代碼中用XML Parseralternative reference)解析xml來做到這一點。之後,它只是將它們插入到數據庫中。

0

是的,您可以使用xml函數xml_parse_into_struct()將您的xml轉換爲數組,而不是使用循環,您可以在數據庫中插入數據。

0

解析XML文件,循環通過構建的每個數據的SQL查詢,執行查詢,輸出一些驗證這樣的我們,如果查詢是全成或不...

0

由於dragon112提到要解析XML在PHP代碼。一個類似的問題已經被詢問並回答。看看here的一些靈感。

祝您好運