PHP量級數據遍歷方案:yield生成器
阿新 • • 發佈:2018-06-22
rep one AS eat inf pes IE fun stat
<?php
/**
* Created by PhpStorm.
* User: zrj
* Date: 18-6-22
* Time: 上午10:49
*/
declare(strict_types=1);//開啟強類型模式
class DB
{
private static $instance = null;
private static $sth = null;
private function __construct()
{
try {
$dsn = "mysql:host=192.168.1.9;dbname=yundou_v3";
static::$instance = new \PDO($dsn, ‘user‘, ‘password‘);
} catch (PDOException $e) {
echo ‘Connection failed: ‘ . $e->getMessage();
exit();
}
static::$instance->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
}
public static function getInstance()
{
if (!(static::$instance instanceof \PDO)) {
new static();
}
return static::$instance;
}
public static function excuteQuery(string $sql)
{
static::$sth = static::$instance->prepare($sql);
static::$sth->execute();
}
//防止實例被克隆
private function __clone()
{
}
public static function cursor()
{
while ($row = static::$sth->fetch(\PDO::FETCH_ASSOC)) {
yield $row;
}
}
}
DB::getInstance();
DB::excuteQuery("select * from bill_info");
foreach (DB::cursor() as $info) {
echo $info[‘id‘] . PHP_EOL;
}
PHP量級數據遍歷方案:yield生成器