From 7c40d1f203c7e46f5e7636d7785dec1b15cff820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Wed, 18 Aug 2021 15:13:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Command.php | 1 - src/Mysql/PDO.php | 24 ++++++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/Command.php b/src/Command.php index d277e5d..a9b3035 100644 --- a/src/Command.php +++ b/src/Command.php @@ -168,7 +168,6 @@ class Command extends Component { $pdo = $this->db->getConnect($this->sql); $result = $pdo->execute($this->sql, $isInsert, $this->params); - var_dump($result); if ($hasAutoIncrement && $result == 0) { return false; } diff --git a/src/Mysql/PDO.php b/src/Mysql/PDO.php index 1441992..3b672b7 100644 --- a/src/Mysql/PDO.php +++ b/src/Mysql/PDO.php @@ -149,7 +149,11 @@ class PDO implements StopHeartbeatCheck */ public function fetchAll(string $sql, array $params = []): array { - return $this->queryPrev($sql, $params)->fetchAll(\PDO::FETCH_ASSOC); + $pdo = $this->queryPrev($sql, $params); + + defer(fn() => $pdo->closeCursor()); + + return $pdo->fetchAll(\PDO::FETCH_ASSOC); } @@ -161,7 +165,11 @@ class PDO implements StopHeartbeatCheck */ public function fetch(string $sql, array $params = []): array { - return $this->queryPrev($sql, $params)->fetch(\PDO::FETCH_ASSOC); + $pdo = $this->queryPrev($sql, $params); + + defer(fn() => $pdo->closeCursor()); + + return $pdo->fetch(\PDO::FETCH_ASSOC); } @@ -173,7 +181,11 @@ class PDO implements StopHeartbeatCheck */ public function fetchColumn(string $sql, array $params = []): array { - return $this->queryPrev($sql, $params)->fetchColumn(\PDO::FETCH_ASSOC); + $pdo = $this->queryPrev($sql, $params); + + defer(fn() => $pdo->closeCursor()); + + return $pdo->fetchColumn(\PDO::FETCH_ASSOC); } @@ -185,7 +197,11 @@ class PDO implements StopHeartbeatCheck */ public function count(string $sql, array $params = []): int { - return $this->queryPrev($sql, $params)->rowCount(); + $pdo = $this->queryPrev($sql, $params); + + defer(fn() => $pdo->closeCursor()); + + return $pdo->rowCount(); }