mirror of
https://code.mensbeam.com/MensBeam/Arsse.git
synced 2024-12-23 09:02:41 +00:00
5d61ab0a57
Three test failures remain, but these are minor and will be resolved soon. Handling of binary data is also broken, but given that this works fine with the PDO driver, there is presumably some correct method.
51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
<?php
|
|
/** @license MIT
|
|
* Copyright 2017 J. King, Dustin Wilson et al.
|
|
* See LICENSE and AUTHORS files for details */
|
|
|
|
declare(strict_types=1);
|
|
namespace JKingWeb\Arsse\Db\MySQL;
|
|
|
|
use JKingWeb\Arsse\Db\Exception;
|
|
|
|
class Result extends \JKingWeb\Arsse\Db\AbstractResult {
|
|
protected $st;
|
|
protected $set;
|
|
protected $cur = null;
|
|
protected $rows = 0;
|
|
protected $id = 0;
|
|
|
|
// actual public methods
|
|
|
|
public function changes(): int {
|
|
return $this->rows;
|
|
}
|
|
|
|
public function lastId(): int {
|
|
return $this->id;
|
|
}
|
|
|
|
// constructor/destructor
|
|
|
|
public function __construct($result, array $changes = [0,0], Statement $statement = null) {
|
|
$this->st = $statement; //keeps the statement from being destroyed, invalidating the result set
|
|
$this->set = ($result instanceof \mysqli_result) ? $result : null;
|
|
$this->rows = $changes[0];
|
|
$this->id = $changes[1];
|
|
}
|
|
|
|
public function __destruct() {
|
|
try {
|
|
$this->set->free();
|
|
} catch (\Throwable $e) { // @codeCoverageIgnore
|
|
}
|
|
unset($this->set);
|
|
}
|
|
|
|
// PHP iterator methods
|
|
|
|
public function valid() {
|
|
$this->cur = $this->set ? $this->set->fetch_assoc() : null;
|
|
return ($this->cur !== null);
|
|
}
|
|
}
|