Derive data type for bindValue call
Remove debugging in document list
This commit is contained in:
parent
50b4104e02
commit
1e7c41eaa2
|
@ -26,7 +26,13 @@ class Custom
|
||||||
$stmt = $pdo->prepare($query);
|
$stmt = $pdo->prepare($query);
|
||||||
foreach ($parameters as $key => $value) {
|
foreach ($parameters as $key => $value) {
|
||||||
if ($debug) echo "<pre>Binding $value to $key\n</pre>";
|
if ($debug) echo "<pre>Binding $value to $key\n</pre>";
|
||||||
$stmt->bindValue($key, $value);
|
$dataType = match (true) {
|
||||||
|
is_bool($value) => PDO::PARAM_BOOL,
|
||||||
|
is_int($value) => PDO::PARAM_INT,
|
||||||
|
is_null($value) => PDO::PARAM_NULL,
|
||||||
|
default => PDO::PARAM_STR
|
||||||
|
};
|
||||||
|
$stmt->bindValue($key, $value, $dataType);
|
||||||
}
|
}
|
||||||
if ($debug) echo '<pre>SQL: ' . $stmt->queryString . '</pre>';
|
if ($debug) echo '<pre>SQL: ' . $stmt->queryString . '</pre>';
|
||||||
if ($stmt->execute()) return $stmt;
|
if ($stmt->execute()) return $stmt;
|
||||||
|
|
|
@ -22,7 +22,7 @@ class DocumentList
|
||||||
* @param PDOStatement|null $result The result of the query
|
* @param PDOStatement|null $result The result of the query
|
||||||
* @param Mapper<TDoc> $mapper The mapper to deserialize JSON
|
* @param Mapper<TDoc> $mapper The mapper to deserialize JSON
|
||||||
*/
|
*/
|
||||||
private function __construct(private ?PDO $pdo, public ?PDOStatement $result, public Mapper $mapper) { }
|
private function __construct(private ?PDO $pdo, private ?PDOStatement $result, private Mapper $mapper) { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct a new document list
|
* Construct a new document list
|
||||||
|
@ -46,17 +46,8 @@ class DocumentList
|
||||||
*/
|
*/
|
||||||
public function items(): Generator
|
public function items(): Generator
|
||||||
{
|
{
|
||||||
$debug = defined('PDO_DOC_DEBUG_SQL');
|
|
||||||
if ($debug) echo '*** CALLED GENERATOR ***';
|
|
||||||
|
|
||||||
if ($this->result) {
|
if ($this->result) {
|
||||||
if ($debug) echo 'There are results';
|
while ($row = $this->result->fetch(PDO::FETCH_ASSOC)) yield $this->mapper->map($row);
|
||||||
while ($row = $this->result->fetch(PDO::FETCH_ASSOC)) {
|
|
||||||
if ($debug) echo "<pre>Returning an item\n</pre>";
|
|
||||||
yield $this->mapper->map($row);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ($debug) echo 'Nothing to return';
|
|
||||||
}
|
}
|
||||||
$this->result = null;
|
$this->result = null;
|
||||||
$this->pdo = null;
|
$this->pdo = null;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user