Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Schritte für PHP, PDO zum Betreiben von MySQL zum Lesen von Daten zu verwenden

Detaillierte Erläuterung der Schritte für PHP, PDO zum Betreiben von MySQL zum Lesen von Daten zu verwenden

php中世界最好的语言
php中世界最好的语言Original
2018-05-17 14:58:562369Durchsuche

Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Schritte zum Betreiben von MySQL zum Lesen von Daten geben. Was sind die Vorsichtsmaßnahmen für die Verwendung von PHP zum Betreiben von MySQL zum Lesen von Daten? Fall, werfen wir einen Blick darauf.

Vorwort

In diesem Artikel werden hauptsächlich relevante Inhalte über PHP vorgestellt, das PDO verwendet, um große Datenmengen aus MySQL zu lesen und für Sie freizugeben Referenz und Studium, im Folgenden gibt es nicht viel zu sagen, werfen wir einen Blick auf die ausführliche Einführung.

Umgebung

  • MySQL: 5.6.34

  • php: 5.6

  • nginx: php-fpm

Anwendbare Szenarien

Bestimmte Geschäftsdatensätze müssen verarbeitet werden

  • Geschäftsexport zum Lesen bestimmter Daten aus MySQL

  • Bestimmte MySQL-Geschäftsvorgänge müssen verarbeitet werden, aktualisieren, löschen, usw. auf einmal

  • Mehr Vorgänge, die bestimmte Datensätze verarbeiten müssen

PDO-Schlüsseleinstellungen

$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();

Generieren

Generator, iterative Datenoperation

Dieser Generator kann weggelassen werden

Probieren Sie den Code aus

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();

Ausgabe

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

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben, achten Sie bitte auf andere Verwandte Artikel auf der chinesischen PHP-Website!

Empfohlene Lektüre:

ThinkPHP-Verbindungsdatenbank-Betriebsfallanalyse

Detaillierte Erläuterung der Schritte zur Installation der Yaf-Erweiterung PHP7.1

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte für PHP, PDO zum Betreiben von MySQL zum Lesen von Daten zu verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn