tp5 r3 一个简单的SQL语句调试实例
先看效果

核心代码

  1. public function index()
  2. {
  3. if (IS_AJAX && session("uid")==1){
  4. $sql=input("post.sql");
  5. $sql=base64_decode($sql);
  6. if ($sql){
  7. if (preg_match('/INSERT INTO|DELETE|UPDATE\s/i', $sql, $info)){
  8. $result=\think\Db::execute($sql);
  9. }
  10. else{
  11. $result=\think\Db::query($sql);
  12. }
  13. return dump($result);//json_encode($result)
  14. }else{
  15. return  "错误的sql语句";
  16. }
  17. }
  18. //读取所有的表
  19. $tables=\think\Db::query('SHOW TABLES');
  20. $this->assign('tables',$tables);
  21. $database=\think\Config::get("database");
  22. $this->assign('tkey',"tables_in_".$database["database"]);
  23. return $this->fetch();
  24. }
复制代码

前台

    1. {include file="Public:header" /}
    2. <div id="page-content" style="min-height: 395px;">
    3. <div class="row">
    4. <div class="col-md-6">
    5. <div class="block full">
    6. <div class="block-title"><h2>数据库命令</h2></div>
    7. <form id="form-sql" onsubmit="return!1" class="form-horizontal form-bordered" method="post" action="{:url('db/index?type=save')}">
    8. <div class="form-group">
    9. <div class="col-md-9 col-md-offset-3">
    10. <div class="col-xs-6">
    11. <select size="1" class="form-control" id="tables">
    12. {volist name="tables" id="vo"}
    13. <option value="{$vo[$tkey]}">{$vo[$tkey]}</option>
    14. {/volist}
    15. </select>
    16. </div>
    17. <div class="btn-group">
    18. <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)" aria-expanded="false">快捷SQL语句<span class="caret"></span></a>
    19. <ul class="dropdown-menu text-left">
    20. <li class="dropdown-header"><i class="fa fa-user pull-right"></i><strong>select语句</strong></li>
    21. <li><a href="javascript:insert('SELECT * FROM `[table]` WHERE 1')">select</a></li>
    22. <li><a href="javascript:insert('INSERT INTO `[table]` VALUES ([value-1],[value-2],[value-3],[value-4],[value-5])')">insert</a></li>
    23. <li><a href="javascript:insert('UPDATE `[table]` SET `[]`=[value-2] WHERE 1')">update</a></li>
    24. <li><a href="javascript:insert('DELETE FROM `[table]` WHERE 1')">delete</a></li>
    25. <li class="divider"></li>
    26. </ul>
    27. </div>
    28. </div>
    29. </div>
    30. <div class="form-group">
    31. <label for="example-textarea-input" class="col-md-3 control-label">SQL命令语句</label>
    32. <div class="col-md-9">
    33. <textarea placeholder="SQL命令语句" class="form-control" rows="7" name="sql" id="sql"></textarea>
    34. </div>
    35. </div>
    36. <div class="form-group form-actions">
    37. <div class="col-md-9 col-md-offset-3">
    38. <button class="btn btn-effect-ripple btn-primary" id="form" type="button" style="overflow:hidden;position:relative">提交</button>
    39. <button class="btn btn-effect-ripple btn-danger" type="reset" style="overflow:hidden;position:relative">重置</button>
    40. </div>
    41. </div>
    42. </form>
    43. </div>
    44. </div>
    45. <div class="col-md-6">
    46. <div class="block full">
    47. <div class="block-title"><h2>输出结果</h2></div>
    48. <p id="result" style="#cccccc;"></p>
    49. </div>
    50. </div>
    51. </div>
    52. </div>
    53. {include file="Public:footer" /}
    54. <script src="__PUBLIC__/static/js/base64/base64.js"></script>
    55. <script>
    56. function insert($sql){
    57. if ($sql){
    58. var table=$("#tables").val();
    59. $("#sql").text($sql.replace("[table]", table));
    60. }
    61. }
    62. $("#form").click(function(){
    63. var sql=$("#sql").val();
    64. var url =$("#form-sql").attr("action");
    65. if (!sql){jError("SQL不能为空!!", {VerticalPosition: 'center',HorizontalPosition: 'center'});return;}
    66. sql=base64_encode(sql);
    67. $.ajax({
    68. url:url,
    69. data:{sql:sql},
    70. type:'post',
    71. cache:true,
    72. dataType:'html',
    73. success:function(data) {
    74. $("#result").html(data);
    75. },
    76. error : function() {
    77. $("#result").html('错误的SQL语句!<br/>'+$("#sql").val());
    78. jError("错误的SQL语句!", {VerticalPosition: 'center',HorizontalPosition: 'center'});
    79. }
    80. });
    81. })
    82. </script>

tp5 r3 一个简单的SQL语句调试实例的更多相关文章

  1. SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比

    原文:SQL点滴10-使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比 今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章 ...

  2. [20190328]简单探究sql语句相关mutexes.txt

    [20190328]简单探究sql语句相关mutexes.txt --//摘要:http://www.askmaclean.com/archives/understanding-oracle-mute ...

  3. 四种简单的sql语句(增删改查语句)

    四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...

  4. 使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比

    今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章,自己添加了一些内容,做了简单的总结,这个语句还是第一次见到,学习了.我从简单到复杂地写, ...

  5. UI:简单的SQL语句

    一.SQL语句如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句1.什么是SQLSQL(structured query language):结构化查询语言SQL是一种对关系型数据库中 ...

  6. 数据库学习之简单的SQL语句

    1.数据库的结构 1.1数据库 不同数据库叫做Catalog(在有的 DBMS 中也称为 Database,即数据库) .採用多 Catalog 以后能够给我们带 来例如以下优点: 便于对各个 Cat ...

  7. 一些简单的SQL语句

    简单的SQL入门 一,简介 1,  一个数据库包含一个或多个表,表包含带有数据的记录(行) 2,  SQL对大小写不敏感,语句的分号看具体情况 二,语法 1,  数据操作语言:DML a)       ...

  8. 简单的SQL语句

    说明:SQL语句大小写都可以,执行一句时,后面可不加分号,如果同时执行两句,就必须加分号,不然会报错. --+空格  是SQL的注释 表格名为users,里面有name和age属性 一.增 inser ...

  9. JDBC之java数据库的连接与简单的sql语句执行

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

随机推荐

  1. OGG内部进程介绍

    1.首先看看什么是OGG,以及OGG的用途       简单的来讲 Oracle Golden Gate (简称OGG)是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得 ...

  2. Python urlparse模块

    Python urlparse模块 urlparse 模块简介 urlparse模块用于把url解析为各个组件,支持file,ftp,http,https,imap,mailto,mms,news,n ...

  3. 520的信心赛——点点玩deeeep

                                   3.点点玩 deeeep(deeeep.cpp) 描述 点点最近迷上了 deeeep(此 de 非彼 de),在研究一个特殊的最长树链问题 ...

  4. ans menu list

    ans menu list 1. 系统配置 a) 基本设置 i. NTP ii. 配置模式 iii. 主机信息 b) 高可用性 i. 节点 ii. 路由监视器 iii. 故障转移接口群 c) 设备标识 ...

  5. Javascript面向对象三大特性(封装性、继承性、多态性)详解及创建对象的各种方法

    Javascript基于对象的三大特征和C++,Java面向对象的三大特征一样,都是封装(encapsulation).继承(inheritance )和多态(polymorphism ).只不过实现 ...

  6. 【JQuery】遍历

    一.前言        接着上一章的内容,继续本章的学习. 二.内容 .add 将元素添加到匹配元素的集合中 .add(object) .add(selector,context) .addSelf ...

  7. 【CF813E】Army Creation(主席树)

    [CF813E]Army Creation(主席树) 题面 CF 洛谷 翻译 by ppl 见洛谷 题解 考虑最多只会有\(K\)个相同的数 那么,也就是说,如果一个数会被选 那么,和它相等的数中,在 ...

  8. CentOS7.4 删除virbr0虚拟网卡

    在CentOS 7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡,这个是因为在虚拟化中有使用到libvirtd服务生成的,如果不需要可 ...

  9. 【Python3的进制扫盲】

    一.进制 1.进制简介 进制就是进位制,是人们规定的一种进位方法.计算机底层的数据运算和存储都是二进制数据.计算机语言就是二进制,计算机能直接识别二进制数据,其它数据都不能直接识别. 2.常用进制 对 ...

  10. 【bzoj3796】Mushroom追妹纸

    Portal -->bzoj3796 Description 给出字符串s1.s2.s3,找出一个字符串w,满足: 1.w是s1的子串: 2.w是s2的子串: 3.s3不是w的子串. ​ 求w的 ...