From f77b0fe5a43f6164f0b0e2ba9980a0efbe2cb5f1 Mon Sep 17 00:00:00 2001 From: David Vandemaele Date: Tue, 23 Feb 2021 17:35:05 +0100 Subject: [PATCH] Throw exception if get_column returns multiple columns --- lib/Skeleton/Database/Driver/Mysqli/Proxy.php | 6 ++++++ lib/Skeleton/Database/Driver/Pdo/Proxy.php | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/lib/Skeleton/Database/Driver/Mysqli/Proxy.php b/lib/Skeleton/Database/Driver/Mysqli/Proxy.php index 7f33c3a..c91d559 100644 --- a/lib/Skeleton/Database/Driver/Mysqli/Proxy.php +++ b/lib/Skeleton/Database/Driver/Mysqli/Proxy.php @@ -418,6 +418,12 @@ public function get_column($query, $params = []) { $statement->execute(); $result = $statement->fetch_assoc(); + if (count($result) == 0) { + return []; + } elseif (count($result[0]) != 1) { + throw new \Exception('Resultset has more than 1 column'); + } + $col = []; foreach ($result as $row) { $col[] = array_shift($row); diff --git a/lib/Skeleton/Database/Driver/Pdo/Proxy.php b/lib/Skeleton/Database/Driver/Pdo/Proxy.php index 69fd9cb..c3c975a 100644 --- a/lib/Skeleton/Database/Driver/Pdo/Proxy.php +++ b/lib/Skeleton/Database/Driver/Pdo/Proxy.php @@ -502,6 +502,12 @@ public function get_column($query, $params = []) { $statement->execute(); $result = $statement->fetch_assoc(); + if (count($result) == 0) { + return []; + } elseif (count($result[0]) != 1) { + throw new \Exception('Resultset has more than 1 column'); + } + $col = []; foreach ($result as $row) { $col[] = array_shift($row);