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. PHP开发工具(CodeLobster PHP Edition)

    参考:http://www.uzzf.com/soft/45948.html 产品名:ttrar.com 密    钥:dstp-187c-9cdd-9a60-e185-b280 CodeLobste ...

  2. js function的方法名是一个变量 能被重复定义 当变量名一致时候 会使用最后一个function

  3. 51nod 1503 猪和回文(多线程DP)

    虚拟两个点,一个从左上角开始走,一个从右下角开始走,定义dp[i][j][k]表示走了i步后,第一个点横向走了j步,第二个点横向走了k步后形成的回文方法种数. 转移方程显然可得,然后滚动数组搞一搞. ...

  4. [poi2011]bzoj 2277 —— strongbox·[洛谷3518]

    ·问题描述· 有一个密码箱,0到n-1中的某些数是它的密码.且满足:如果a和b都是它的密码,那么(a+b)%n也是它的密码.某人试了k次密码,前k-1次都失败了,最后一次成功. 问:该密码箱最多有多少 ...

  5. [区分] 1.计算机网络/internet(互联网) 2.Internet(因特网) 3.www/web(万维网)

    internet(互联网或互连网)是一个通用名词,泛指由多个计算机网络互联而成的虚拟网络.Inernet(因特网)是一个专用名词,指当前全球最大的.开放的.由众多网络相互连接而成的特定的计算机网络,它 ...

  6. NHibernate 设置主键不自增长

    1.Model 配置 [PrimaryKey(PrimaryKeyType.Assigned,"ID")] 2.使用时要手动赋值

  7. [AT2363] [agc012_c] Tautonym Puzzle

    题目链接 AtCoder:https://agc012.contest.atcoder.jp/tasks/agc012_c 洛谷:https://www.luogu.org/problemnew/sh ...

  8. 【BZOJ3203】保护出题人(动态规划,斜率优化)

    [BZOJ3203]保护出题人(动态规划,斜率优化) 题面 BZOJ 洛谷 题解 在最优情况下,肯定是存在某只僵尸在到达重点的那一瞬间将其打死 我们现在知道了每只僵尸到达终点的时间,因为僵尸要依次打死 ...

  9. 【BZOJ3166】ALO(主席树)

    [BZOJ3166]ALO(主席树) 题面 权限题qwq 资磁洛谷 题解 用一个\(set\)求出左右侧比这个数大的第\(2\)个数, 然后用可持久化\(Trie\)算一下就好啦 #include&l ...

  10. jdk1.5后枚举类的定义规则

    转: http://blog.csdn.net/willcold/article/details/12844487  JDK1.5 新增的enum关键字用于定义枚举类             枚举类也 ...