大家好,我是小皮。
一款为公司内非技术同事设计的 快速 MySQL 查询工具,让他们不必学习 SQL 就能自助查询数据库,帮你节省重复查数据的时间。
项目地址:https://github.com/zxc7563598/data-query-tool
初衷
在公司里,经常有运营、老板找你要数据,而很多时候一个 SQL 就能解决的问题,但同事们从来不愿意学 MySQL 或安装工具。于是我写了这个工具:零框架、零依赖、直接访问网页即可,让同事们自己查数据,你专心写代码。
特性
- 可通过
php -S 0.0.0.0:8000 在局域网共享访问 - 支持将常用 SQL 配置到
config.json,同时点击就能查询
安装与使用
将仓库代码放到公司服务器或者本机内网环境
git clone https://github.com/zxc7563598/data-query-tool
启动 PHP 内置服务器:
php -S 0.0.0.0:8000
打开浏览器访问 http://服务器IP:8000
首次访问会要求配置数据库等信息,并生成 config.json
后续可以通过直接修改 config.json 来调整 SQL 模板,或直接删掉 config.json 后重新访问进行配置
在 config.json 中配置常用 SQL,让同事直接选择执行
SQL 模板格式:
{"name": "模板名称","query": "SQL语句,如果有参数,用 {{}} 包裹","query_params": { ## 参数,用于替换SQL中的 {{}}"参数名称":{ ## 应该跟 {{}} 中的内容相等"type": "input", ## 参数类型:input-文本输入框;date-日期选择框;select-下拉列表选择"options": [ ## 下拉列表选择框,仅 type 为 select 时生效 {"value": "5", ## 数值"label": "拒绝签约"## 展示内容 } ],"description": "参数描述(展示在页面上的参数名称)" } }}
config.json 示例:
"sql_templates": [ {"name": "查询所有用户","query": "SELECT user_id as '用户ID',phone as '手机号',real_name as '姓名',FROM_UNIXTIME(created_at) as '创建时间' from ch_users where deleted_at is null","query_params": {} }, {"name": "根据手机号查询用户","query": "SELECT user_id as '用户ID',phone as '手机号',real_name as '姓名',FROM_UNIXTIME(created_at) as '创建时间' from ch_users where phone = {{phone}} and deleted_at is null","query_params": {"phone": {"type": "input","description": "手机号" } } }, {"name": "根据注册时间查询用户","query": "SELECT user_id as '用户ID',phone as '手机号',real_name as '姓名',FROM_UNIXTIME(created_at) as '创建时间' from ch_users where created_at >= UNIX_TIMESTAMP({{start_time}}) and created_at <= UNIX_TIMESTAMP({{end_time}}) and deleted_at is null","query_params": {"start_time": {"type": "date","description": "开始时间" },"end_time": {"type": "date","description": "结束时间" } } }, {"name": "根据订单状态搜索订单信息","query": "SELECT borrow_sn as '订单号',real_name as '姓名',borrow_amount as '合同金额',FROM_UNIXTIME(created_at) as '签约时间' from ch_borrows where `status` = {{status}} and deleted_at is null","query_params": {"status": {"type": "select","options": [ {"value": "5","label": "拒绝签约" }, {"value": "6","label": "取消签约" }, {"value": "9","label": "签约失败" }, {"value": "11","label": "已签约" }, {"value": "12","label": "已完成" } ],"description": "订单状态" } } }]
注意事项
- 建议只在公司内网环境使用,不建议直接暴露到公网,以免不必要的数据泄露风险
- 对 SQL 权限请谨慎控制,避免误操作,建议只执行查询语句,不要对数据进行变更
感谢大家阅读,个人观点仅供参考,欢迎在评论区发表不同观点。
欢迎关注、分享、点赞、收藏、在看,我是微信公众号「PHP驿站」作者小皮。