我被要求解析一个存储为XML文件的简单文件,然后将数据保存到MySQL。

然而,我完全不知道该怎么做,并且在网上查看之后,给出的所有示例对于我的问题来说似乎太复杂,或者不是正确的解决方案。XML文件如下所示

游戏分数.xml

Reference Scores

-

Game Information Scores

-

-

............etc

然后我必须把它保存到现有的mysql中,看起来

CREATE TABLE IF NOT EXISTS `scrore_table` (

`scrore_id` int(11) NOT NULL auto_increment,

`scrore_title` varchar(32) collate utf8_bin NOT NULL default '',

`scores` varchar(15) collate utf8_bin NOT NULL default '',

`decimal_place` char(1) collate utf8_bin NOT NULL,

`value` float(15,8) NOT NULL,

`date_updated` datetime NOT NULL default '0000-00-00 00:00:00',

PRIMARY KEY (`currency_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1; ;

INSERT INTO `scrore_table` (`scrore_id`, `scrore_title`, `scores`, `decimal_place`, `value`, `date_updated`) VALUES

(1, 'Game Class A0', 'GameA0', '2', 1.00000000, '2010-04-06 22:00:54'),

(2, 'Game Class A1', 'GameA1', '2', 1.58030000, '2010-04-06 22:00:54'),

(3, 'Game Class A2', 'GameA2', '2', 21.3503000, '2010-04-06 22:00:54'),

..............................etc

(15, 'Game Class A15', 'GameA15', '2', 135, '2010-04-06 22:00:54');

关于这个问题,我有下面的PHP脚本:

class Scores_Converter {

var $xml_file = "http://192.168.1.112/gamescores/games_scores.xml";

var $mysql_host, $mysql_user, $mysql_pass, $mysql_db, $mysql_table;

var $scores_values = array();

//Load convertion scores

function Scores_Converter($host,$user,$pass,$db,$tb) {

$this->mysql_host = $host;

$this->mysql_user = $user;

$this->mysql_pass = $pass;

$this->mysql_db = $db;

$this->mysql_table = $tb;

$this->checkLastUpdated();

$conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass);

$rs = mysql_select_db($this->mysql_db,$conn);

$sql = "SELECT * FROM ".$this->mysql_table;

$rs = mysql_query($sql,$conn);

while($row = mysql_fetch_array($rs)) {

$this->scores_values[$row['scores']] = $row['value'];

}

}

/* Perform the actual conversion, defaults to 1.00 GameA1 to GameA3 */

function convert($amount=1,$from="GameA1",$to="GameA3",$decimals=2) { return(number_format(($amount/$this->scores_values[$from])*$this->scores_values[$to],$decimals));

}

/* Check to see how long since the data was last updated */

function checkLastUpdated() {

$conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass);

$rs = mysql_select_db($this->mysql_db,$conn);

$sql = "SHOW TABLE STATUS FROM ".$this->mysql_db." LIKE '".$this->mysql_table."'";

$rs = mysql_query($sql,$conn);

if(mysql_num_rows($rs) == 0 ) {

$this->createTable();

} else {

$row = mysql_fetch_array($rs);

if(time() > (strtotime($row["Update_time"])+(12*60*60)) ) {

$this->downloadValueScores();

}

}

}

/* Download xml file, extract exchange values and save the values in database */

function downloadValueScores() {

$scores_domain = substr($this->xml_file,0,strpos($this->xml_file,"/"));

$scores_file = substr($this->xml_file,strpos($this->xml_file,"/"));

$fp = @fsockopen($scores_domain, 80, $errno, $errstr, 10);

if($fp) {

$out = "GET ".$scores_file." HTTP/1.1\r\n";

$out .= "Host: ".$scores_domain."\r\n";

$out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5\r\n";

$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

while (!feof($fp)) {

$buffer .= fgets($fp, 128);

}

fclose($fp);

$pattern = "{}is";

preg_match_all($pattern,$buffer,$xml_values);

array_shift($xml_values);

for($i=0;$i

$exchange_value[$xml_values[0][$i]] = $xml_values[1][$i];

}

$conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass);

$rs = mysql_select_db($this->mysql_db,$conn);

foreach($exchange_value as $scores=>$value) {

if((is_numeric($value)) && ($value != 0)) {

$sql = "SELECT * FROM ".$this->mysql_table." WHERE scores='".$scores."'";

$rs = mysql_query($sql,$conn) or die(mysql_error());

if(mysql_num_rows($rs) > 0) {

$sql = "UPDATE ".$this->mysql_table." SET value=".$value." WHERE scores='".$scores."'";

} else {

$sql = "INSERT INTO ".$this->mysql_table." VALUES('".$scores."',".$value.")";

}

$rs = mysql_query($sql,$conn) or die(mysql_error());

}

}

}

}

/* Create the scores table */

function createTable() {

$conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass);

$rs = mysql_select_db($this->mysql_db,$conn);

$sql = "CREATE TABLE ".$this->mysql_table." ( `scrore_id` int(11) NOT NULL, `scrore_title` varchar(32) collate utf8_bin NOT NULL default '', `scrores` char(12) NOT NULL default '', `decimal_place` char(1) collate utf8_bin NOT NULL default '2', `value` float(15,8) NOT NULL,`date_updated` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY(currency) ) ENGINE=MyISAM";

$rs = mysql_query($sql,$conn) or die(mysql_error());

$sql = "INSERT INTO ".$this->mysql_table." VALUES(1,'','GameA0','2',1,now())";

$rs = mysql_query($sql,$conn) or die(mysql_error());

$this->downloadValueScores();

}

}

?>

然后,使用创建的脚本mysql表/查询如下:

INSERT INTO `scrore_table` (`scrore_id`, `scrore_title`, `scrores`, `decimal_place`, `value`, `date_updated`) VALUES

(1, 'Game Class A0', 'GameA0', '2', 1.00000000, '2010-10-24 00:27:01');

但是数据库不是自动填充的,这看起来函数downloadValueScores()工作不正常。

我试过把它修好,我想这就是我要走的方向,但我不知道。另外,很抱歉,我对PHP还不熟悉。

任何帮助或指点都是很好的,非常感谢

php 读取mysql 返回xml_用php解析xml并保存到mysql相关推荐

  1. mysql t 保存_检查 (调试) - 离线消息保存到 MySQL - 《EMQ X Enterprise v4.1 中文文档》 - 书栈网 · BookStack...

    离线消息保存到 MySQL 搭建 MySQL 数据库,并设置用户名密码为 root/public,以 MacOS X 为例: $ brew install mysql $ brew services ...

  2. SparkStreaming读取Kafka的Json数据然后保存到MySQL

    一般我们使用SparkStreaming消费kafka数据,获取到数据后解析,使用JDBC的方式写入数据库,如下所示. 以上的方式没什么毛病,但是当我们消费的kafka数据类型比较多样的时候,我们需要 ...

  3. python股票接口_Python 从 sina 股票数据接口读取数据,并保存到 MySQL 数据库

    说明 从 sina 的数据接口获取数据,之后,保存到 MySql 数据库 文件:getDataFromSina.py ''' Created on 2018年2月11日 @author: Livon ...

  4. Beautifulsoup爬取起点中文网 保存到mysql

    一.分析网页 目标网站:起点中文网 目标数据:类别(categoryName)小说书名(bookName) 小说链接(middleUrl)字数(wordsNums) 作者(updateTiems) 最 ...

  5. kafka偏移量保存到mysql里_SparkStreaming+kafka保存offset的偏移量到mysql案例

    MySQL创建存储offset的表格 mysql> use test mysql> create table hlw_offset( topic varchar(32), groupid ...

  6. mysql打印语句_大数据挖掘—(八):scrapy爬取数据保存到MySql数据库

    (大数据挖掘-(七):读懂MySql数据库操作)(大数据挖掘神器--scrapy spider爬虫框架(五):解析多层网页) 通过往期的文章分享,我们了解了如何爬取想要的数据到Items中,也了解了如 ...

  7. 将labview连续数据保存到mysql数据库器

    这一篇是在之前完成Labview和mysql连接,并且进行了简单的CRUD删除的基础上来的.我们一般不会拿Labview来做学生这种数据管理系统,而是对于基本传感器数据的采集和保存,而传感器采集数据会 ...

  8. 使用python scrapy爬取全国小区信息(包括小区价格,经纬度,面积,户数等),并保存到mysql和excel

    目标 此次爬取的网站是楼盘网,因为只爬取小区信息,所以先从深圳小区(http://sz.loupan.com/community/)网页入手分析,然后发散爬取至全国. 爬取的信息包括 省,所属市,所属 ...

  9. python hive mysql_[7] 编写Python脚本将Hive的运算结果保存到MySQL数据库中(1) - 摩西莫西 - ITeye技术网站...

    编写Python脚本将Hive的运算结果保存到MySQL数据库中(1) 很多情况下,需要将Hive中的运算结果保存到MySQL数据库中,可以通过简单的Python脚本来实现. 例子1:如果获取Hive ...

最新文章

  1. 微信小程序 --- 拨打电话
  2. linux 定时重启mysql_Linux下定时自动重启apache及mysql
  3. flash 绘图API:绘制基础的图形
  4. 百度翻译十年:语种全球首破200大关,质量提升30个百分点,每天翻译超千亿字符...
  5. 图形图像处理_c/c++
  6. 图像处理之一阶微分应用
  7. Linux环境搭建 | 手把手教你配置Linux虚拟机
  8. mysql out 注意_总结关于in和out注意点
  9. 建立丰富多彩的toast的简单实例
  10. python xlwt 解决报错:ValueError: More than 4094 XFs (styles)
  11. image unity 拉伸_Unity UGUI基础之Image
  12. Android开发中Ant命令编译和APK签名的一些心得
  13. 室内定位程序_在哪都能找到你!苹果新iPhone将支持UWB高精度室内定位
  14. 环境变量GOBIN导致GoClipse运行出现异常
  15. 计算机考试综合模块怎么做,《综合素质》几大模块备考指导要知道!
  16. 坐标转换程序:(1)四参数和七参数的计算
  17. CSS-属性选择器的用法详解
  18. Python小白入门练习试题
  19. 电影推荐系统 python简书_基于Spark的电影推荐系统(实战简介)
  20. python中网络编程总结(udp,tcp)

热门文章

  1. 【UV打印】UV平板打印机校准教程
  2. 温哥华菜鸟生活攻略(1)
  3. 微信小程序开发详细步骤解决方案
  4. S905L(P211)盒子刷android tv以及刷emuelec 4.4/4.5的向导/方法
  5. 【Quartz】任务调度
  6. 在.net gridview 更新回oracle数据库,.net 连接Oracle操作 - cathy_10 - 博客园
  7. python:map_reduct_filter_sorted
  8. 随机模型,估计与控制 ——介绍
  9. 2021漳州一中历年高考成绩查询,2021年漳州中考录取分数线,历年漳州各高中录取分数线排名...
  10. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述调用方法!