Skip to content

Commit 9afb99f

Browse files
authored
Merge pull request #15 from Javakky-pxv/feature/default-fetch-mode
Set default fetch style
2 parents 5241021 + 09f533e commit 9afb99f

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

src/FakePdoStatementTrait.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ trait FakePdoStatementTrait
2626
/**
2727
* @var int
2828
*/
29-
private $fetchMode = \PDO::ATTR_DEFAULT_FETCH_MODE;
29+
private $fetchMode = \PDO::FETCH_BOTH;
3030

3131
private $fetchArgument;
3232

src/FakePdoTrait.php

+10
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ trait FakePdoTrait
2828
*/
2929
public $lowercaseResultKeys = false;
3030

31+
/** @var ?int */
32+
private $defaultFetchMode = null;
33+
3134
/**
3235
* @var bool
3336
*/
@@ -70,6 +73,13 @@ public function setAttribute($key, $value)
7073
$this->lowercaseResultKeys = true;
7174
}
7275

76+
if ($key === \PDO::ATTR_DEFAULT_FETCH_MODE) {
77+
if (!is_int($value)) {
78+
throw new \PDOException("SQLSTATE[HY000]: General error: invalid fetch mode type");
79+
}
80+
$this->defaultFetchMode = $value;
81+
}
82+
7383
if ($this->real && $key !== \PDO::ATTR_STATEMENT_CLASS) {
7484
return $this->real->setAttribute($key, $value);
7585
}

src/Php7/FakePdo.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ class FakePdo extends PDO implements FakePdoInterface
1616
*/
1717
public function prepare($statement, $options = [])
1818
{
19-
return new FakePdoStatement($this, $statement, $this->real);
19+
$stmt = new FakePdoStatement($this, $statement, $this->real);
20+
if ($this->defaultFetchMode) {
21+
$stmt->setFetchMode($this->defaultFetchMode);
22+
}
23+
return $stmt;
2024
}
2125

2226
/**

0 commit comments

Comments
 (0)