Веб консоль для работы с базами данных PDO Console
В ClickHouse есть встроенная веб-консоль для работы с базой данных, позволяет лишь выполнять SQL-запросы, штука быстрая, удобная, просто открываешь в браузере сайт по адресу http://localhost:8123/ и можешь работать с базой данных.
Решил сделать аналогичную, для работы с другими базами данных, для реализации выбрал язык PHP, можно запустить где угодно, хоть на калькуляторе, даже если нет веб-сервера (php -S localhost:8089 pdoconsole.php). Можно закинуть скрипт на любой хостинг, где есть поддержка PHP, и работать на удалённом сервере. Получилась эдакий простой phpmyadmin, или pgadmin, для тех, кто предпочитает работать с базами данных через SQL. Поддерживаются все базы данных, что работают через библиотеку PDO.
Всё находится в одном файле pdoconsole.php, браузер загружает страницу одним HTTP-запросом, в дальнейшем SQL-запросы отправляются через AJAX (библиотека htmx.js), результат выводится в таблицу, в которой можно разворачивать столбцы одной строки, и смотреть их в виде строк. Оформление сделано на bootstrap5, поддерживается тёмная тема, можно работать даже со смартфона, вёрстка адаптивная.
В начале файла pdoconsole.php можно заменить ключ шифрования на случайную длинную фразу, ей шифруются данные подключения к базе данных, которые хранятся в cookie долгое время. История запросов хранится в sessionStorage браузера, стирается после закрытия вкладки. Можно работать одновременно с разными базами данных через параметр ?prefix=dbname
Исходный код и полное описание: https://github.com/ibnteo/pdoconsole

Программирование на PHP
64 поста2K подписчик
Правила сообщества
- запрещено добавлять посты отличной от мира программирования тематики (так как пикабу - это в первую очередь развлекательный ресурс, то посты с юмором, историями, изображениями и всем, что связано с php - разрешены);
- запрещено добавлять посты с содержанием в виде вопроса, или просьбы о помощи, для этого есть тематические ресурсы;
- запрещено добавлять посты провакационной тематики, нацеленные на бессмысленные споры и оскарбления;
- в копипастах и переводах указывайте источники;