diff --git a/src/Custom.php b/src/Custom.php index b3ce240..fc1a068 100644 --- a/src/Custom.php +++ b/src/Custom.php @@ -26,7 +26,13 @@ class Custom $stmt = $pdo->prepare($query); foreach ($parameters as $key => $value) { if ($debug) echo "
Binding $value to $key\n
"; - $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 '
SQL: ' . $stmt->queryString . '
'; if ($stmt->execute()) return $stmt; diff --git a/src/DocumentList.php b/src/DocumentList.php index da5d0f3..60a7658 100644 --- a/src/DocumentList.php +++ b/src/DocumentList.php @@ -22,7 +22,7 @@ class DocumentList * @param PDOStatement|null $result The result of the query * @param Mapper $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 @@ -46,17 +46,8 @@ class DocumentList */ public function items(): Generator { - $debug = defined('PDO_DOC_DEBUG_SQL'); - if ($debug) echo '*** CALLED GENERATOR ***'; - if ($this->result) { - if ($debug) echo 'There are results'; - while ($row = $this->result->fetch(PDO::FETCH_ASSOC)) { - if ($debug) echo "
Returning an item\n
"; - yield $this->mapper->map($row); - } - } else { - if ($debug) echo 'Nothing to return'; + while ($row = $this->result->fetch(PDO::FETCH_ASSOC)) yield $this->mapper->map($row); } $this->result = null; $this->pdo = null;