aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/db_sql_autocomplete.php
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/db_sql_autocomplete.php')
-rw-r--r--srcs/phpmyadmin/db_sql_autocomplete.php41
1 files changed, 41 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/db_sql_autocomplete.php b/srcs/phpmyadmin/db_sql_autocomplete.php
new file mode 100644
index 0000000..86e94e1
--- /dev/null
+++ b/srcs/phpmyadmin/db_sql_autocomplete.php
@@ -0,0 +1,41 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Table/Column autocomplete in SQL editors
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Response;
+
+if (! defined('ROOT_PATH')) {
+ define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
+}
+
+require_once ROOT_PATH . 'libraries/common.inc.php';
+
+/** @var Response $response */
+$response = $containerBuilder->get(Response::class);
+
+/** @var DatabaseInterface $dbi */
+$dbi = $containerBuilder->get(DatabaseInterface::class);
+
+if ($GLOBALS['cfg']['EnableAutocompleteForTablesAndColumns']) {
+ $db = isset($_POST['db']) ? $_POST['db'] : $GLOBALS['db'];
+ $sql_autocomplete = [];
+ if ($db) {
+ $tableNames = $dbi->getTables($db);
+ foreach ($tableNames as $tableName) {
+ $sql_autocomplete[$tableName] = $dbi->getColumns(
+ $db,
+ $tableName
+ );
+ }
+ }
+} else {
+ $sql_autocomplete = true;
+}
+
+$response->addJSON("tables", json_encode($sql_autocomplete));