]> git.mxchange.org Git - friendica.git/commitdiff
Rewrote to suggestions from @MrPetovan (I tried to maintain the old way of
authorRoland Häder <roland@mxchange.org>
Tue, 21 Jun 2022 16:11:59 +0000 (18:11 +0200)
committerRoland Häder <roland@mxchange.org>
Tue, 21 Jun 2022 16:13:01 +0000 (18:13 +0200)
['scheme' => 'table'] with my version).

src/Database/DBA.php

index d428f36f5a91af3c9ae15e13ca1cdda0426734bf..3cd14766b43521b92a3039840c84aaf188178269 100644 (file)
@@ -526,32 +526,25 @@ class DBA
         */
        public static function buildTableString(array $tables): string
        {
-               $quotedTables = [];
-
-               foreach ($tables as $schema => $table) {
-                       if (is_numeric($schema)) {
-                               $str = '';
-                               foreach (explode('.', $table) as $part) {
-                                       $str .= self::quoteIdentifier($part) . '.';
-                               }
-                               $quotedTables[] = rtrim($str, '.');
-                       } else {
-                               $quotedTables[] = self::quoteIdentifier($schema) . '.' . self::quoteIdentifier($table);
-                       }
-               }
-
-               return implode(', ', $quotedTables);
+               // Quote each entry
+               return implode(',', array_map(['self', 'quoteIdentifier'], $tables));
        }
 
        /**
-        * Escape an identifier (table or field name)
+        * Escape an identifier (table or field name) optional with a schema like (schema.)table
         *
-        * @param $identifier
-        * @return string
+        * @param $identifier Table, field name
+        * @return string Quotes table or field name
         */
        public static function quoteIdentifier(string $identifier): string
        {
-               return '`' . str_replace('`', '``', $identifier) . '`';
+               return implode(
+                       '.',
+                       array_map(
+                               function (string $identifier) { return '`' . str_replace('`', '``', $identifier) . '`'; },
+                               explode('.', $identifier)
+                       )
+               );
        }
 
        /**