专栏首页PHP实战技术你知道这种开发模式能更好的帮你排错吗?

你知道这种开发模式能更好的帮你排错吗?

很多时候我们在开发一个项目的时候写着写着sql语句报错了?(这里多指使用框架开发,当然也有原声sql语句),之后有时候会扎耳挠腮,看来看去都感觉自己的sql语句没有问题,其实这往往就降低了我们的开发效率

(1)针对原声sql语句当然就比较好解决了,当然有时候我们写程序的时候程序就已经告诉你了sql语句是否有问题,这样当然就更好了,如果不报错的话,我们可以将我们的sql语句粘贴到mysql的管理器中,比如导航猫(相信大家都知道的可视化客户端),还有就是网页版本的phpmyadmin,一执行便知道sql语句的问题了。

(2)让人头疼的是在某个框架中,我们使用框架封装好的方法我们去操作数据库,这样在一定程度上我们就不会用编写原声sql语句而头疼了,但是就是这样我们的sql语句出现问题我们排错也是更加困难的,接下来小编就给大家说两种我们在日常开发中常用的两种框架,怎么更好的去解决这个问题:

1)在web开发神器Laravel里面我们怎么去做呢?分为两种方法,当然如果有更好的方法欢迎一起交流

首先我们执行一个php artisan make:listener SqlListener -e QueryExecuted

当然在事件监听的Service里面要加上监听的事件类文件地址

接下来我们就去编写一个记录sql语句的业务逻辑了

之后我们编写sql处理方法

之后在对应的文件夹下面就出现了一个文件,里面就记录了我们执行的sql语句

2)还有一个简单暴力的方法

这样也能打印出sql语句,当然这个sql语句就是一个预处理sql语句

当然还是推荐上面第一种方法

3)接下来我就给大家介绍国产框架ThnkPHP5.0+的方法,当然加简单很多了

$this->getLastSql();

之后就可以先显示一段最后一次执行的sql语句了

select * from test;

以上就是我们开发中最常用的排错以及去优化sql语句具备的基础操作,希望我们在日常开发中遇到sql语句的问题我们完全可以按照上面的操作去打印sql语句然后排错以及进行sql的优化

本文分享自微信公众号 - 思梦PHP(sm_php),作者:思梦php讲师刘柱

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 商业网站你是这样优化的吗?

    服务器配置,2台负载网站,一台分发网站,一台数据库。配置32核,32G,50M带宽。看着配置完全可以满足网站需求,但是巧的事情发生了,网站一台服务器时候还不是很...

    思梦php
  • 想玩API,这些套路我来告诉你!

    小伙伴是不是时常听说各种api接口的问题呢,可能许多人第一感觉:那是什么个玩意儿,那么多人回去研究它,今天思梦PHP小编就来为你揭开他的神秘的面纱,先看一下百度...

    思梦php
  • 有时候binlog能救你一条命

    binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。

    思梦php
  • 性能下降的不定时炸弹_过旧的sql_profile(r3笔记第9天)

    最近这一周以来,生产环境像是得了重病的病人一样,小问题没有修好,大问题不断。IO的等待极为严重。数据库的负载达到了几十倍,上百倍。 weblogic和tuxed...

    jeanron100
  • sql格式化工具

    该工具支持oracle、mysql、sql server等关系型数据库,能让你看到sql美化后的清晰的结构,可运用于对复杂SQL语句的分析或者是程序代码优化上,...

    ixiaoyang8
  • JDBC系列:(3)使用Prepared

    py3study
  • Oracle AWR 阙值影响历史执行计划

          最近有网友提到为什么在dba_hist_sql_plan中无法查看到sql语句的历史执行计划,对于这个问题是由于缺省情况下,Oracle 设定的阙值...

    Leshami
  • MyBatis系列第1篇:MyBatis未出世之前我们那些痛苦的经历

    MyBatis系列目标:从入门开始开始掌握一个高级开发所需要的MyBatis技能。

    路人甲Java
  • JDBC的基本使用流程

    JDBC的基本使用流程: 1 导入jar包: 导入ojdbc6.jar,在项目上右键 builder path–>add to builder path. ...

    葆宁
  • Groovy-16.数据库

    UPDATE和DELETE操作都是写好SQL然后通过execute执行,但是需要commit()提交(在后文“提交”中介绍)。

    悠扬前奏

扫码关注云+社区

领取腾讯云代金券