Maison > développement back-end > tutoriel php > Explication détaillée des étapes permettant à PHP d'utiliser PDO pour faire fonctionner MySQL pour lire les données

Explication détaillée des étapes permettant à PHP d'utiliser PDO pour faire fonctionner MySQL pour lire les données

php中世界最好的语言
Libérer: 2023-03-26 11:52:01
original
2418 Les gens l'ont consulté

Cette fois, je vais vous donner une explication détaillée des étapes à suivre pour utiliser PHP pour faire fonctionner MySQL pour lire des données. Quelles sont les précautions pour utiliser PHP pour faire fonctionner MySQL pour lire des données. cas, jetons un coup d'oeil.

Avant-propos

Cet article présente principalement le contenu pertinent sur PHP utilisant PDO pour lire de grandes quantités de données à partir de MySQL et les partager pour votre référence et étude, pas grand chose à dire ci-dessous, jetons un œil à l'introduction détaillée.

Environnement

  • mysql : 5.6.34

  • php : 5.6

  • nginx : php-fpm

Scénarios applicables

Besoin de traiter certains ensembles de données métiers

  • Exportation commerciale de lecture de certaines données depuis mysql

  • Besoin de traiter certaines opérations commerciales mysql mise à jour, suppression, etc. en même temps

  • Plus d'opérations nécessitant le traitement de certains ensembles de données

Paramètres des touches 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();
Copier après la connexion

Générateur

Générateur, opération itérative de données

Ce générateur peut être omis

Essayez le code

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();
Copier après la connexion
Essayez le code

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

Sortie

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez faire attention aux autres articles connexes sur le site Web PHP chinois ! Lecture recommandée :

Analyse du cas d'opération de la base de données de connexion ThinkPHP

Explication détaillée des étapes pour installer l'extension yaf dans PHP7.1

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal