This time I will bring you a detailed explanation of the steps for using PHP to operate mysql to read data. What are the precautions for using PHP to operate mysql to read data? The following is a practical case, let's take a look.
Preface
This article mainly introduces the relevant content about PHP using PDO to read large amounts of data from mysql, and share it for your reference and study , not much to say below, let’s take a look at the detailed introduction.Environment
Applicable scenarios
Need to process a certain data set business$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();
Generate
Generator, iterative data operationThis generator can be omittedTry 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 == '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();
Output
1 ... //省略部分id 804288 消耗内存:"0.34918212890625M 处理数据行数:254062 success
ThinkPHP connection database operation case analysis
Detailed explanation of the steps to install the yaf extension in PHP7.1
The above is the detailed content of Detailed explanation of the steps for PHP to use PDO to operate mysql to read data. For more information, please follow other related articles on the PHP Chinese website!