From 584b7883a7e98aaf86710e40a99c995013748d93 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Tue, 9 Jul 2024 11:56:28 +0400 Subject: [PATCH] =?UTF-8?q?pr=C3=A9fixe=20de=20colonne?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/db/_private/Tselect.php | 13 +++++++++---- src/db/_private/_select.php | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/db/_private/Tselect.php b/src/db/_private/Tselect.php index 34a9acb..5f70171 100644 --- a/src/db/_private/Tselect.php +++ b/src/db/_private/Tselect.php @@ -2,6 +2,7 @@ namespace nur\sery\db\_private; use nur\sery\cl; +use nur\sery\str; use nur\sery\ValueException; trait Tselect { @@ -32,6 +33,8 @@ trait Tselect { if (self::consume('(.*?)\s*(?=$|\bfrom\b)', $tmpsql, $ms)) { if ($ms[1]) $usercols[] = $ms[1]; } + $colPrefix = $query["col_prefix"] ?? null; + if ($colPrefix !== null) str::add_suffix($colPrefix, "."); $tmpcols = cl::withn($query["cols"] ?? null); $schema = $query["schema"] ?? null; if ($tmpcols !== null) { @@ -41,20 +44,22 @@ trait Tselect { if ($key === $index) { $index++; $cols[] = $col; - $usercols[] = $col; + $usercols[] = "${colPrefix}$col"; } else { $cols[] = $key; - $usercols[] = "$col as $key"; + $usercols[] = "${colPrefix}$col as $key"; } } } else { $cols = null; if ($schema && is_array($schema) && !in_array("*", $usercols)) { $cols = array_keys($schema); - $usercols = array_merge($usercols, $cols); + foreach ($cols as $col) { + $usercols[] = "${colPrefix}$col"; + } } } - if (!$usercols && !$cols) $usercols = ["*"]; + if (!$usercols && !$cols) $usercols = ["${colPrefix}*"]; $sql[] = implode(", ", $usercols); ## from diff --git a/src/db/_private/_select.php b/src/db/_private/_select.php index b712ef3..0f834e8 100644 --- a/src/db/_private/_select.php +++ b/src/db/_private/_select.php @@ -6,6 +6,7 @@ class _select { "prefix" => "?string", "schema" => "?array", "cols" => "?array", + "col_prefix" => "?string", "from" => "?string", "where" => "?array", "order by" => "?array",