很多人可能跟我一样,需要连接N都个数据库,进行操作, 有时候要查某个服务器下某个数据库的某张表的数据. 然后只能打开连接远程服务器, 连接远程数据库, 然后再sql语句操作. 每次都很烦,所以有空做了个 连接数据库操作的工具页面.

直接工具栏输入, 下面显示查询结果列表

前端: easyui 前端我用的是easyui的表格功能,这个做列表数据展示还不错,

后端: php 接口,

直接贴代码.

<html lang="en">
<head><meta http-equiv="content-type" content="text/html;charset=utf-8"><title></title><link rel="stylesheet" type="text/css" href="jquery-easyui-1.4/themes/default/easyui.css"><link rel="stylesheet" type="text/css" href="jquery-easyui-1.4/themes/icon.css"><script type="text/javascript" src="jquery-easyui-1.4/jquery.min.js"></script><script type="text/javascript" src="jquery-easyui-1.4/jquery.easyui.min.js"></script><script type="text/javascript" src="jquery-easyui-1.4/locale/easyui-lang-zh_CN.js"></script></head>
<body style="padding:0px;margin:0px"><table id="dg" style="width:100%;" data-options=""></table><div id="toolbar"><table style='width:100%'><div id="toolbar"><form ><div>类型:<select name="type"><option value="0" selected="selected">综合区</option><option value="1">指定区</option></select>数据库名:<input type="text" name="db_name" placeholder="DATABASE" value="" id="db_name" /></div><div>区ID:<input type="text" name="zoneid"  placeholder="ZONE" value="" id="zoneid" /></div><div>SQL语句:<textarea name="sqlstr" rows="3" cols="30" ></textarea> <a href="javascript:;" onclick="select_gift();" class="easyui-linkbutton" iconCls="icon-undo" >gift</a></div></form><div><button type="button" onclick="datagrid_load();" class="easyui-linkbutton" iconCls="icon-search" >查询</button></div></div></table></div><script type="text/javascript">//动态展示列和数据var datagrid_load = function () {var columns = new Array();//定义列数组var ser = encodeURI($('form').serialize());//参数需要跟 下面保持一致$.getJSON('sql_toolbar_port.php?head=1&'+ser, null, function (result) {//通过方法获得后台数据,该方法不唯一。/*var column = {field: 'field', title: '不变的', width: 100, sortable: true, editor: 'textReadonly',}columns.push(column);//将固定写死的列,存入列数组中*/for (var i = 0; i < result.length; i++) {//遍历获得的后台数据,这是需要动态显示的表头数据源var column1 = {field: result[i].field, title: result[i].title , width: 70, sortable: true, editor: {type: 'numberbox',}}// field字段和title值都是根据后台的数据来赋值columns.push(column1);//将需要动态显示的列,存入列数组中}initTable(columns);});}$(function () {})function initTable(columns) {grid = $('#dg').datagrid({   //定位到Table标签,Table标签的ID是gridurl: 'sql_toolbar_port.php',   //指向后台的Action来获取当前菜单的信息的Json格式的数据title: 'sql查询',iconCls: 'icon-view',
//                height: 650,
//                width: '100%',fit: true,idField: 'ID',toolbar: '#toolbar',method : 'post',fitColumns:false,    //横向滚动条queryParams: {zoneid:$("input[name='zoneid']").val(),type:$("select[name='type']").val(),db_name:$("input[name='db_name']").val(),sqlstr:encodeURI($("textarea[name='sqlstr']").val())},
//            queryParams: $("form").serialize(),  //异步查询的参数columns: [columns,//通过js动态生成,这是关键。],});};function select_gift() {var obj1 = $("form").serializeArray();$.each(obj1,function (i,field) {alert(field.name + '=' + field.value);})}</script>
</body>
</html>

因为easyui的datagrid 表格插件, 官方没有给出 动态输出表格动态展示列的例子, 我采用的是动态获取列.

列标题 一个接口, 列数据一次接口. 我觉得两个本来就是一个查询, 所以放到了一个页面, 只做了返回值的区分, 列标题传一个head=1的参数.

JS两个ajax函数, 一个是获取列的, 下面是获取数据的,  上面获取后把列字符串给到下面的 datagrid表格控件去展示.

注意两个函数的参数都要一致,否则会出错.

看看PHP页面.

include_once 'database.php';
include_once 'function.php';
include_once 'models/ZoneClass.php';
$Zone = new ZoneClass(DATABASE_HOST,DATABASE_USER,DATABASE_PASS,DATABASE_PORT,DB_FENTIANSJ);
include_once 'models/GmCode.php';
$GMCODE = new  GmCode(DATABASE_HOST,DATABASE_USER,DATABASE_PASS,DB_EXTGAME,DATABASE_PORT);$con = mysqli_connect(DATABASE_HOST,DATABASE_USER, DATABASE_PASS, DB_ADMIN, DATABASE_PORT);
$con ? '': die('连接失败');$head = empty($_REQUEST['head']) ? '' : $_REQUEST['head'];
$type = empty($_REQUEST['type']) ? 0:1;
$db_name = empty($_REQUEST['db_name']) ? '': urldecode($_REQUEST['db_name']);
$zoneid = empty($_REQUEST['zoneid']) ? '' : $_REQUEST['zoneid'];
$sqlstr = empty($_REQUEST['sqlstr']) ? '' : urldecode($_REQUEST['sqlstr']) ;
$rows = array();
//echo urldecode($sqlstr);die();if($type ==0){mysqli_set_charset($con,'utf8');mysqli_select_db($con,$db_name) or die("mysql select db error ".mysqli_error($con));//设置或修改数据库$result = mysqli_query($con,$sqlstr);while ($row = mysqli_fetch_assoc($result)){$rows[] = $row;}}else{$rows = $Zone->readZoneData($zoneid,$sqlstr);}
//var_dump($rows);
//die();$array = array();
if (!$rows){echo '{"error":"没有数据","rows":[]}';exit();
}if($head == 1){//读取列$jsons1 = '';foreach ($rows[0] as $k=>$v){
//        $jsons1 .= '{"title":"'.$k.'","field":"'.$k.'","width":"100","align":"center"},';$jsons1[] = array('field' =>$k,'title' =>$k,'align' => 'center',"width" => 200,);}echo json_encode($jsons1);//    echo '[{"field":"id","title":"ID"},{"field":"gm_code","title":"gm"},{"field":"gm_zones","title":"gm_zones"},{"field":"action","title":"action"},{"field":"state","title":"state"},{"field":"timesss","title":"timesss"},{"field":"ctime","title":"ctime"}]';
}else{//读取数据echo json_encode($rows);
}die();

这是个原生的php, 直接用mysqli连接,

前面引入的是连接数据库的公共文件.

先说说数据库情况,

default 数据库 : 默认数据库, 服务器 IP 10.10.1.1. 所以选择综合区,填写操作的数据库即可

其他区数据库(每个区的服务器都不同): 我这里在默认服务器下,有一个ZONE区数据表, 记录不同ZONE ID的 服务器IP 账号 密码 等.

所以要查询 某个区下面的数据库, 填写区ID 即可, 引入的ZoneClass是封装文件.

你们可以直接 把你们多个服务器做成一个SELECT下拉框, 一个数据库 文本框, 一个SQL语句文本框.

代码没什么好说的, 有注释, head是只取字段名, 然后把字段名转为json字符串.前端获取后展示列标题. 另外一个就是获取数据. 遵循easyui 表格的规则

网页上直接sql查询操作数据库,并在网页上展示列表数据的工具页面相关推荐

  1. sql 上亿 查询_在文件上使用 SQL 查询的示例

    [摘要] 本文介绍直接用 SQL 查询文件数据的各种情况,并用 esProc SPL 举例实现.请点击在文件上使用 SQL 查询的示例了解详情 在数据分析业务中经常要处理数据文件.我们知道,对于数据库 ...

  2. 如何在Windows 10 上安装SQL Server 2000数据库?

    Win10本身是一个兼容性较好的操作系统,目前有很多人在咨询如何在Windows 10 上安装 SQL Server 2000数据库,都没有成功过.主要是卡在了安装过程中的mdac2.6 安装上,一直 ...

  3. mysql统计数量函数方法_mySql关于统计数量的SQL查询操作

    mySql关于统计数量的SQL查询操作,状态,订单,语句,函数,数量 mySql关于统计数量的SQL查询操作 易采站长站,站长之家为您整理了mySql关于统计数量的SQL查询操作的相关内容. 我就废话 ...

  4. 主要是sql查询符合在圆形,多边形区域经纬度的数据

    主要是sql查询符合在圆形,多边形区域经纬度的数据 查询 圆形 中心点 + 距离 drop table if exists demo; CREATE TABLE `demo` (`id` int(5) ...

  5. 数据输出:如何将数据带给页面||SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面

    数据输出:如何将数据带给页面 SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面 SpringMVC提供了一种可以临时给Session域中保存数据的方式 ...

  6. IDEA连接MySQL数据库并执行SQL查询操作

    打开IDEA后,新建一个项目或者在已有项目上均可操作!!! 1 打开数据库页面 1.1 方式一 在主页面工具栏上找到View(视图)-Tool Windows(工具窗口)-Database(数据库), ...

  7. SQL查询优化方法 提高SQL查询效率 数据库的哪些字段适合添加索引

    如何提高sql的查询效率 在正确的字段上创建索引. 优化查询sql的写法(特别是where语句的写法). 一.数据库的哪些字段适合添加索引 表的某个字段值得离散度越高,该字段越适合选作索引的关键字.主 ...

  8. pl sql mysql 版本_老版本PL/SQL Developer操作数据库导致ORA-00600[17113]

    在巡检某运营商的计费库时,发现alert日志中发现如下错误 Thu Feb 2 13:54:52 2012 Errors in file /oracle9/app/admin/bill/udump/b ...

  9. java数据库返回表格中_Java中sql语句操作数据库及将数据库信息显示在表格中

    首先连接数据库,接着就可以对数据库进行操作了 创建Connection对象,建立与数据库的连接. ResultSet 对象是用来存放操作结果的,也就是SQL查询语句对数据库的查询操作将返回一个Resu ...

  10. python查询sqlserver视图_基于odoo11上的SQL查询构建一个新的视图或模型

    我正在研究一个奥多模块.在 我希望我的模块是一个"报告"大多数购买的产品(按客户).在 我已经在Odoo上创建了一个视图,但是现在,我需要按客户"过滤"这些视图 ...

最新文章

  1. 17、Kubernetes容器交付介绍
  2. jQuery函数学习
  3. .net 导出excel_java导出excel(easypoi)
  4. oracle约束应用实例,oracle 约束的novalidate 应用
  5. ubuntu20.04运行《大航海家2》
  6. 程序员的职业选择:打工者、独立开发者、创业者
  7. Ubuntu 14.04下安装Redis报错:“You need tcl 8.5 or newer in order to run the Redis test”问题解决
  8. 玩 High API 系列好文:UGC内容检测、视频智能、拍照翻译、懂天气的草地喷水头...
  9. python3.8.4rc1_Python3.8.4rc1 官方正式版
  10. 谷歌 Nest 和 Fitbit 漏洞奖励翻番
  11. eval函数python_Python eval()函数
  12. 为什么CPU的使用率总是100%
  13. 微服务(Microservices)概述 与 Spring Cloud 简介
  14. AJAX请求中payload和formdata两种方式
  15. 计算机数据类型误差怎么解决,误差分析与数据处理
  16. 2021年P气瓶充装模拟考试及P气瓶充装考试试题
  17. 华为---ACL配置
  18. 程序员才懂的58张图片,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
  19. 如何配置使用新的单线激光雷达
  20. 一键自动AI抠图,堪比人工PS!

热门文章

  1. AE CS6安装教程说明
  2. 键盘鼠标录制哪个好用_美商海盗船Scimitar RGB Elite鼠标体验:再多技能也怕这把弯刀...
  3. 【Arduino创意】基于蜂鸣器制作摩尔斯电码生成器
  4. Unity Wwise 自己使用
  5. 光谱数据计算色彩指标的软件(功能强大,齐全)
  6. Python下载视频
  7. 电磁屏蔽技术的三种主要方法
  8. MAC hosts 文件修改流程
  9. 中级软件设计师笔记全套 看完你就过啦
  10. Matlab中linspace函数的用法