PHP使用PDO操作mysql讀取資料步驟詳解

php中世界最好的语言
發布: 2023-03-26 11:52:01
原創
2268 人瀏覽過

這次帶給大家PHP使用PDO操作mysql讀取資料步驟詳解,PHP使用PDO操作mysql讀取資料的注意事項有哪些,下面就是實戰案例,一起來看一下。

前言

本文主要介紹了PHP利用PDO從mysql讀取大量資料處理的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

環境

  • mysql: 5.6.34

  • php: 5.6

  • nginx: php-fpm

適用場景

需要處理一定資料集業務

  • 從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();
登入後複製

生成器

生成器,迭代資料操作

本生成器可省略

##嘗試程式碼#

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" : '
'; 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中文網其它相關文章!

推薦閱讀:

ThinkPHP連線資料庫運算元列分析

#PHP7.1內安裝yaf擴充步驟詳解

以上是PHP使用PDO操作mysql讀取資料步驟詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!