• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP使用PDO从mysql读取大量数据处理详解

    前言

    本文主要介绍了关于PHP利用PDO从mysql读取大量数据处理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

    环境

    适用场景

    需要处理一定数据集业务

    pdo 关键设置

    $dbh = new \PDO($dsn, $user, $pass);
    # 关键设置,如果不设置,php依旧会从pdo一次取出数据到php
    $dbh->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
    //perpare里的游标属性不是必须的
    $sth = $dbh->prepare("SELECT * FROM `order`", array(\PDO::ATTR_CURSOR => \PDO::CURSOR_SCROLL));
    $sth->execute();

    生成器

    生成器,迭代数据操作

    本生成器可省略

    尝试代码

    class Test {
     public function test()
     {
      set_time_limit(0);
      $dbms='mysql';  //数据库类型
      $host=C('DB_HOST'); //数据库主机名
      $dbName=C('DB_NAME'); //使用的数据库
      $user=C('DB_USER');  //数据库连接用户名
      $pass=C('DB_PWD');   //对应的密码
      $dsn="$dbms:host=$host;dbname=$dbName";
      $dbh = new \PDO($dsn, $user, $pass);
      $dbh->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
      $sth = $dbh->prepare("SELECT * FROM `order`");
      $sth->execute();
      $i = 0;
    
      $newLine = PHP_SAPI == 'cli' ? "\n" : 'br />';
    
      foreach ($this->cursor($sth) as $row) {
    //   var_dump($row);
       echo $row['id'] . $newLine;
       $i++;
      }
    
      echo "消耗内存:" . (memory_get_usage() / 1024 / 1024) . "M" . $newLine;
      echo "处理数据行数:" . $i . $newLine;
      echo "success";
     }
    
     public function cursor($sth)
     {
      while($row = $sth->fetch(\PDO::FETCH_ASSOC)) {
       yield $row;
      }
     }
    }
    
    $test = new Test();
    $test->test();

    输出

    1
    ... //省略部分id
    804288
    消耗内存:"0.34918212890625M
    处理数据行数:254062
    success

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • php中mysql连接方式PDO使用详解
    • Php中用PDO查询Mysql来避免SQL注入风险的方法
    • php mysql PDO 查询操作的实例详解
    • PHP实现PDO的mysql数据库操作类
    • php中数据库连接方式pdo和mysqli对比分析
    • php基于PDO实现功能强大的MYSQL封装类实例
    • php下pdo的mysql事务处理用法实例
    • PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
    • PHP基于PDO扩展操作mysql数据库示例
    • PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
    上一篇:PHP数组递归排序实现方法示例
    下一篇:基于PHP安装zip拓展,以及libzip安装的问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP使用PDO从mysql读取大量数据处理详解 PHP,使用,PDO,从,mysql,读取,