zoukankan      html  css  js  c++  java
  • PHP 读取XML大文件格式并将其存入数据库中

    <?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中的写法  , 字符串或者变量应该使用单引号'' 扩起来 ,外层使用双引号。

    .╭⌒╮ ─ ● ─ ╭ ⌒╮╭⌒╮. / │ \ .╭⌒╮ .╭ ⌒╮. ╭ ⌒╮. ╭ ⌒╮. ╭ ⌒╮ ╭⌒╮ ╭⌒╮ =====●=============== 希望你别迷路了, 希望你交到好朋友, 希望你别再被人欺负, 希望你幸福, 希望你一个人, 也能够坚强。
  • 相关阅读:
    深蓝说区块学习笔记
    Golang语言练习
    WebAssembly学习
    JMeter如何维持登录Session状态
    MySQL脏读、不可重复读、幻读及MVCC
    webrtc源码分析(7)-fec
    webrtc源码分析(9)-拥塞控制(下)-码率分配
    webrtc源码分析(8)-拥塞控制(上)-码率预估
    剑指offer刷题合集
    Visual Studio ------- 将在解决方案中单击文件名,预览文件内容功能开启与关闭
  • 原文地址:https://www.cnblogs.com/weiwozui/p/14137702.html
Copyright © 2011-2022 走看看