<?php
 
 
$xml = new XMLReader();
$xmlfile="./full_database.xml";#文件路径
 
$xml->open($xmlfile);
 
$i=0;
 
while($xml->read()) {
    if($xml->name=='drug-interaction' and $xml->nodeType==XMLReader::ELEMENT) { // 进入 drug-interaction
        $inXml = $xml->readOuterXML(); // 获取当前整个 drug-interaction 内容(字符串)
        $inXml = simplexml_load_string($inXml); // 转换成 SimpleXMLElement 对象
        // 查询出来之后存到数据库中
        $conn=mysqli_connect("localhost","root","qwertyuip","qin-data");
if(!$conn)
{
die("连接数据库失败".mysqli_connect_errno($conn));
}else{
echo "成功<br/>";
}
mysqli_select_db($conn,"qin-data");
//设置字符集
mysqli_query($conn,"set name utf8");
        // var_dump(object2array($inXml));die;
        $inXml = object2array($inXml);
        // var_dump($inXml['drugbank-id']);die;
        $data['id'] = $inXml['drugbank-id'];
        $data['name'] = $inXml['name'];
        $data['description'] = $inXml['description'];
        $sql = "INSERT INTO interaction(id, name, description) VALUES('$data[id]','$data[name]','$data[description]')";
        $res=mysqli_query($conn,$sql);
        // var_dump($res);die;
        mysqli_close($conn);
}
$i++;
    // 继续读取 直到进入下一个 object
// if($i>5000){
//  continue;
// }
}
 
 
function object2array(&$object) {
    $object =  json_decode( json_encode( $object),true);
    return  $object;
}
 
 

需要注意几点:

1.使用mysqli 原生语句链接

2.使用simplexml_load_string 获取到值后为对象格式,应使用PHP转成数据格式在提取值

3.注意原生sql语句在PHP中的写法  , 字符串或者变量应该使用单引号'' 扩起来 ,外层使用双引号。

PHP 读取XML大文件格式并将其存入数据库中的更多相关文章

  1. 读取txt数据存入数据库中

    http://blog.csdn.net/daditao/article/details/18899469

  2. java读取excel的内容(可保存到数据库中)

    //** poi jar包 // public class ReadExcel { @SuppressWarnings("static-access") private stati ...

  3. 读取xml数据装配到字典中之应用场景

    前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去 ...

  4. ASP.Net将图片以二进制方式存入数据库,并读取

    把图片转换成二进制--把二进制转换成图片 private void button1_Click(object sender, EventArgs e) { string path = this.tex ...

  5. 基于easyui框架中input 类型的checkbox拼接成字符串存入数据库和读取选中---善良公社项目

    项目中我做修改用户个人资料的时候,有一个需求是帮助人员的帮助类型如图下所示: 当初想如果是asp.net控件的话应该很简单实现,如果不是基于easyUI框架那就太简单了,现在是受框架的限制与是前端ht ...

  6. MySQL数据库中tinyint字段值为1,读取出来为true的问题

    原文:https://blog.csdn.net/shuyou612/article/details/46788475 MySQL数据库中tinyint字段值为1,读取出来为true的问题   今天在 ...

  7. wcf序列化大对象时报错:读取 XML 数据时,超出最大

    错误为: 访问服务异常:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出 错: request.InnerException 消息是“反序 ...

  8. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  9. C# 读取XML注释

    C#可以通过反射读取类的字段/方法等,可是该如何获取该字段的XML注释? 具体目的:有一个实体类,页面需要有一个与其对应的table,样式大体为 <tr> <td>地东经< ...

随机推荐

  1. Linux内核源码分析之set_arch (一)

    1. 概述 之前已经写了几篇Linux内核启动相关的文章,比如:<解压内核镜像><调用 start_kernel>都是用汇编语言写的,这些代码的作用仅仅是把内核镜像放置到特定的 ...

  2. iOS Transform坐标变化

    在使用CGContext时,由于Quartz 2D与UIKit坐标不一致,所以需要对context进行再一次的变化,达到预期的效果. 1. 不同坐标原点介绍 在Quartz 2D中,坐标原点在画布的左 ...

  3. web安全原理-文件包含漏洞

    前言 起来吃完早饭就开始刷攻防世界的题,一个简单的文件包含题我竟然都做不出来我服了  拿出买的书开始从头学习总结文件包含漏洞! 一.文件包含漏洞 文件包含漏洞 文件包含函数的参数没有经过过滤或者严格的 ...

  4. Ubuntu14.04下安装Composer

    下载Composer: curl -sS https://getcomposer.org/installer | php 安装Composer: /usr/bin/php composer.phar ...

  5. Spring Boot中的配置

    一.首先使用idea中的Spring Initializr快速创建一个SpringBoot应用,idea会联网自动创建,创建好的结构如下(一些没必要的文件都删了): 其中说一下几个文件夹和文件 sta ...

  6. 日期选择组件(DatePicker)的实现

    一.效果图 日期选择组件大概长这样: 从效果图可以看出,日期选择组件由两部分组成:日历表格和顶部操作栏. 二.日历表格 日期选择组件的核心主体是日历表格: 可以将日历表格表示成一个7️*的二维数组,数 ...

  7. vue中,模拟锚点定位,实现滚动动画效果

    平时我们利用锚点进行页面内的快速瞬移,画面跳转生硬,观感很差. 在VUE中,如何快速的实现锚点效果,并且还让它拥有滚动的动画效果呢. 其实两行代码就能解决问题 1 <a @click=" ...

  8. java中的强引用(Strong reference),软引用(SoftReference),弱引用(WeakReference),虚引用(PhantomReference)

    之前在看深入理解Java虚拟机一书中第一次接触相关名词,但是并不理解,只知道Object obj = new Object()类似这种操作的时候,obj就是强引用.强引用不会被gc回收直到gc roo ...

  9. Django的静态文件的配置

    静态文件配置 STATIC_URL = '/static/' # 静态文件配置 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ] # 暴露给 ...

  10. 浅尝 Elastic Stack (三) Logstash + Beats

    本文使用 Filebeat,如果没有安装需要安装: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat- ...