要用php 把XML數(shù)據(jù)導(dǎo)入mysql ,xml里所有的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了道里免費建站歡迎大家使用!
我在php手冊里找了個例子
to import xml into mysql
$file = "article_2_3032005467.xml";
$feed = array();
$key = "";
$info = "";
function startElement($xml_parser, $attrs ) {
global $feed;
}
function endElement($xml_parser, $name) {
global $feed, $info;
$key = $name;
$feed[$key] = $info;
$info = ""; }
function charData($xml_parser, $data ) {
global $info;
$info .= $data; }
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "charData" );
$fp = fopen($file, "r");
while ($data = fread($fp, 8192))
!xml_parse($xml_parser, $data, feof($fp));
xml_parser_free($xml_parser);
$sql= "INSERT INTO `article` ( `";
$j=0;
$i=count($feed);
foreach( $feed as $assoc_index = $value )
{
$j++;
$sql.= strtolower($assoc_index);
if($i$j) $sql.= "` , `";
if($i =$j) {$sql.= "` ) VALUES ('";}
}
$h=0;
foreach( $feed as $assoc_index = $value )
{
$h++;
$sql.= utf8_decode(trim(addslashes($value)));
if($i-1$h) $sql.= "', '";
if($i =$h) $sql.= "','')";
}
$sql=trim($sql);
echo $sql;
mysql導(dǎo)出的xml文件也是標(biāo)準(zhǔn)的xml文件,根節(jié)點是數(shù)據(jù)庫名,重復(fù)節(jié)點是表名,表名節(jié)點里是字段名和值,用php自身帶的解析xml類來解析xml文件,比如比較好用的simplexml類:
$xmlfile="test.xml";
//比如你的表名是user
$xml=simplexml_load_file($xmlfile);
foreach ($xml-user as $u)
{
$name= $u-name;
$sex= $u-sex;
$pwd= $u-pwd;
mysql_query("insert into user set name='$name',sex='$sex',pwd='$pwd'");
}
這樣就把xml文件插入數(shù)據(jù)庫表里了。
meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"
?php
//腳本永不結(jié)束
set_time_limit(0);
//數(shù)據(jù)庫連接
mysql_connect('host',?'user',?'password');
mysql_select_db('database');
while(true){
//這里不知道你的xml來源,改為你自己的來源,讀入xml變量
$xml?=?'xmlrow?expect="201412345"?opencode="1,2,3,4,5"?opentime="2014-11-11?11:11:11"http://xml';
//解析xml內(nèi)容
$obj?=?simplexml_load_string($xml,?'SimpleXMLElement',?LIBXML_NOCDATA);
$expect?=?$obj-row['expect'];
$opencode?=?$obj-row['opencode'];
$opentime?=?$obj-row['opentime'];
$sql='INSERT?INTO?table?VALUES?(\''.$expect.'\',\''.$opencode.'\',\''.$opentime.'\')';
mysql_query($sql);
//休息60秒
sleep(60);
}
由于php沒有線程概念,這個頁面要運行的話,必須維持一個在瀏覽器打開狀態(tài)
這里的代碼只是簡單的示例,具體的邏輯你可以根據(jù)需求自己完善