19

Веб консоль для работы с базами данных PDO Console

В ClickHouse есть встроенная веб-консоль для работы с базой данных, позволяет лишь выполнять SQL-запросы, штука быстрая, удобная, просто открываешь в браузере сайт по адресу http://localhost:8123/ и можешь работать с базой данных.

Решил сделать аналогичную, для работы с другими базами данных, для реализации выбрал язык PHP, можно запустить где угодно, хоть на калькуляторе, даже если нет веб-сервера (php -S localhost:8089 pdoconsole.php). Можно закинуть скрипт на любой хостинг, где есть поддержка PHP, и работать на удалённом сервере. Получилась эдакий простой phpmyadmin, или pgadmin, для тех, кто предпочитает работать с базами данных через SQL. Поддерживаются все базы данных, что работают через библиотеку PDO.

Веб консоль для работы с базами данных PDO Console

Всё находится в одном файле pdoconsole.php, браузер загружает страницу одним HTTP-запросом, в дальнейшем SQL-запросы отправляются через AJAX (библиотека htmx.js), результат выводится в таблицу, в которой можно разворачивать столбцы одной строки, и смотреть их в виде строк. Оформление сделано на bootstrap5, поддерживается тёмная тема, можно работать даже со смартфона, вёрстка адаптивная.

В начале файла pdoconsole.php можно заменить ключ шифрования на случайную длинную фразу, ей шифруются данные подключения к базе данных, которые хранятся в cookie долгое время. История запросов хранится в sessionStorage браузера, стирается после закрытия вкладки. Можно работать одновременно с разными базами данных через параметр ?prefix=dbname

Исходный код и полное описание: https://github.com/ibnteo/pdoconsole

Правила сообщества

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

- запрещено добавлять посты с содержанием в виде вопроса, или просьбы о помощи, для этого есть тематические ресурсы;

- запрещено добавлять посты провакационной тематики, нацеленные на бессмысленные споры и оскарбления;

- в копипастах и переводах указывайте источники;

DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (1)
5
DELETED
Автор поста оценил этот комментарий
Сделано под старые версии PHP (от 5.4), запускаться может ведь и на старых серверах, без использования фреймворков. Всё в одном небольшом файле, большую часть которого занимают библиотеки bootstrap.css и htmx.js
показать ответы
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (1)
3
DELETED
Автор поста оценил этот комментарий

Он уже давно устарел, вёрстка не адаптивная. Ещё не запоминает данные подключения к базе данных, постоянно надо логиниться, по этой причине давно ещё перестал с ним работать, удобнее даже через текстовую консоль.


Это всё же другое, у него основа это правка данных и структуры через его формы, а здесь упор на работу через SQL, текстовый редактор сделан со многими удобными штуками, есть автоотступы, можно быстро листать историю запросов.


Аналог PDO Console это консоль ClickHouse: https://clickhouse.com/docs/ru/interfaces/http

0
Автор поста оценил этот комментарий

проверок приходящего $_POST\GET не увидел
регулярки все эти я б повыносил в отдельную функцию для чистоты кода, вложенные IF ELSE по мне читаются намного хуже чем case
Насчет адаптива в adminer.php - так у вас тоже все на таблицах, представление баз данных лучше всего в табличном виде, раз в сто лет придется с телефона зайти.
и тд и тп
Нет, как любой программист должен написать свою ОС - решение весьма похвальное, но вряд ли полезное сообществу в текущем виде при наличии более функциональных и протестированных решений работы с БД

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
Проверка входных данных есть в необходимых пределах, в остальном не требуется, так как чужих входных данных нет. По мере роста кода, если таковое понадобится, что-то будет выноситься в функции и классы.

Админерами перестал пользоваться, так как надо постоянно заново логиниться, десктопные приложения позволяют запоминать эту информацию, веб-приложения почему-то нет. Ещё не требуются расширенные права у пользователя, от которого работаешь, за счёт простоты, не пытается достать те данные, на которые может не быть прав. Как пример, тот же Tabix, им нельзя открыть базу данных что в play.clickhouse.com/play, где простая веб-консоль работает.
0
Автор поста оценил этот комментарий

Специалистам такая штука не понадобится, новичкам тоже. Зачем?

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий
Для себя сделал, удобнее работать, чем в текстовой консоли, данные лучше видно.

Новичкам вместо тыканья мышкой, хорошо бы SQL изучать на практике, а то так и останутся новичками, с навыками работы в pgadmin или phpmyadmin.
показать ответы