<?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. apache-commons和guava的工具类

    apache-commons工具类:https://www.iteye.com/blog/zhoualine-1770014 guava工具类:https://blog.csdn.net/Dream_ ...

  2. SD卡被格式化了还能恢复吗

    SD卡轻便小巧,它的主要功能是拓展便携式设备.包括:数据相机.手机及其他的多媒体播放器等的存储空间,缓解设备本身的存储压力. 很多用户反应,SD卡使用了一定的时间后,会出现SD卡受损的提示,再次打开的 ...

  3. 「LOJ 541」「LibreOJ NOIP Round #1」七曜圣贤

    description 题面很长,这里给出题目链接 solution 用队列维护扔掉的红茶,同时若后扔出的红茶比先扔出的红茶编号更小,那么先扔出的红茶不可能成为答案,所以可以用单调队列维护 故每次询问 ...

  4. css3系列之@font-face

    @font-face 这个属性呢,必须设置在 css的根下,也就是说,不能设置在任何元素里面. @font-face: 参数: font-family:  给这个文字库 起个名字. src: url( ...

  5. vue 2.9.6升级到3X版本

    先通过 npm uninstall vue-cli -g 卸载vue,然后再安装,但是vue -V时依然是2.9.6版本: 第一步: npm config get registry 第二步: npm ...

  6. k8s 自动伸缩 pod(HPA)

    上一篇简单说了一下使用 kubeadm 安装 k8s.今天说一下 k8s 的一个神奇的功能:HPA (Horizontal Pod Autoscaler). HPA 依赖 metrics-server ...

  7. LeetCode周赛#207

    5519. 重新排列单词间的空格 #字符串 #模拟 题目链接 题意 给定字符串text,该字符串由若干被空格包围的单词组成,也就说两个单词之间至少存在一个空格.现要你重新排列空格,使每对相邻单词间空格 ...

  8. Java基础教程——异常处理详解

    异常处理 好程序的特性 可重用性 可维护性 可扩展性 鲁棒性 |--|--Robust的音译 |--|--健壮.强壮之意 |--|--指在异常和危险情况下系统依然能运行,不崩溃 Java中,写下如下代 ...

  9. Java + maven + httpclient + testng + poi实现接口自动化

    一.maven中引入httpclient.testng.poi依赖包 <project xmlns="http://maven.apache.org/POM/4.0.0" x ...

  10. MIT-6.005软件构建

    L01 Static Typing 主要对比Java和Python Java:静态语言,运行之前所有变量都要声明.traps:整型相除还是整型,5/2=2.数值溢出,20亿*2结果是负数,这个bug不 ...