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

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

网页上直接sql查询操作数据库,并在网页上展示列表数据的工具页面_第1张图片

网页上直接sql查询操作数据库,并在网页上展示列表数据的工具页面_第2张图片

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

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

后端: php 接口, 

直接贴代码. 



    
    
    
    
    
    
    






类型: 数据库名:
区ID:
SQL语句: gift

因为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 表格的规则

你可能感兴趣的:(php,技术,数据库)