public function cursor($query, $bindings = [], $useReadPdo = true)
{
$statement = $this->run($query, $bindings, function ($me, $query, $bindings) use($useReadPdo) {
if ($me->pretending()) {
return [];
}
$statement = $this->getPdoForSelect($useReadPdo)->prepare($query);
$fetchMode = $me->getFetchMode();
$fetchArgument = $me->getFetchArgument();
$fetchConstructorArgument = $me->getFetchConstructorArgument();
if ($fetchMode === PDO::FETCH_CLASS && !isset($fetchArgument)) {
$fetchArgument = 'StdClass';
$fetchConstructorArgument = null;
}
if (isset($fetchArgument)) {
$statement->setFetchMode($fetchMode, $fetchArgument, $fetchConstructorArgument);
} else {
$statement->setFetchMode($fetchMode);
}
$me->bindValues($statement, $me->prepareBindings($bindings));
$statement->execute();
return $statement;
});
while ($record = $statement->fetch()) {
(yield $record);
}
}