>  기사  >  백엔드 개발  >  PHP가 PDO를 사용하여 mysql을 작동하여 데이터를 읽는 단계에 대한 자세한 설명

PHP가 PDO를 사용하여 mysql을 작동하여 데이터를 읽는 단계에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-05-17 14:58:562369검색

이번에는 PHP를 사용하여 mysql을 조작하여 데이터를 읽는 단계에 대해 자세히 설명하겠습니다. PHP가 PDO를 사용하여 mysql을 조작하여 데이터를 읽을 때의 주의 사항은 무엇입니까? 봐.

머리말

이 글은 주로 PDO를 사용하여 mysql에서 대량의 데이터를 읽는 관련 내용을 소개합니다. 참고 및 학습을 위해 공유합니다. 아래에서는 자세히 설명하지 않겠습니다. 자세한 소개에서.

환경

  • mysql: 5.6.34

  • php: 5.6

  • nginx: php-fpm

적용 가능한 시나리오

특정 데이터 세트를 처리해야 함 business

  • mysql에서 특정 데이터를 읽는 비즈니스 내보내기

  • 특정 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();

Generator

Generator, 반복 데이터 작업

이 생성기는 생략 가능

코드를 사용해 보세요

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 == &#39;cli&#39; ? "\n" : &#39;<br />&#39;;
  foreach ($this->cursor($sth) as $row) {
//   var_dump($row);
   echo $row[&#39;id&#39;] . $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();

Output

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

나는 당신이 본 글의 사례를 읽어보신 후, 더 흥미로운 내용을 보시려면 PHP 중국어 홈페이지의 다른 관련 글도 주목해주세요!

추천 도서:

ThinkPHP 데이터베이스 연결 동작 사례 분석

PHP7.1에서 yaf 확장 기능을 설치하는 단계에 대한 자세한 설명

위 내용은 PHP가 PDO를 사용하여 mysql을 작동하여 데이터를 읽는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.