php yield 循环遍历,PHP量级数据遍历方案:yield生成器

/**

* 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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值