phpcms V9 改造:输出sql语句

1、修改数据库驱动
phpcms/libs/classes/mysql.class.php

添加以下代码:
/**
* 最近一次查询语句
*/
private $lastquerysql = ‘‘;
public function lastsql() {
        return $this->lastquerysql;
}

修改execute方法,在
$this->lastqueryid = mysql_query($sql, $this->link) or $this->halt(mysql_error(), $sql);

之前添加一行
$this->lastquerysql = $sql;

即:
private function execute($sql) {
        if(!is_resource($this->link)) {
                $this->connect();
        }

$this->lastquerysql = $sql;
        $this->lastqueryid = mysql_query($sql, $this->link) or $this->halt(mysql_error(), $sql);

$this->querycount++;
        return $this->lastqueryid;
}

2、修改模型
phpcms/libs/classes/model.class.php

添加一个方法即可
public function lastsql() {
        return $this->db->lastsql();
}

3、调用
使用自定义模型类查询完成之后,调用模型类的lastsql()方法即可

phpsso的mysql类以及model类可改可不改,一般情况下用不到

时间: 2024-08-05 15:44:17

phpcms V9 改造:输出sql语句的相关文章

PHPcms v9 get标签sql 语句limit无效问题的解决方法

get标签非常好用,自定义模型后get几乎变成万能的了.但是PHPCMS升级到V9后,把2008的很多功能都去掉了,比如get标签中,在后面自动添加了一个LIMIT 0,20,这样你即使写了num='数字'也没用,写在SQL语句里面,例如 {pc:get sql="SELECT * FROM v9_news ORDER BY id DESC LIMIT 2,5" cache="3600" page="$page" dbsource="d

NHibernate输出SQL语句

用了NHierbate之后,很少需要写原生的SQL语句,由于总是看不到SQL语句,所以有时候对SQL调优非常不利.因此产生了让NHibernate输出它所生成的SQL语句的想法,以便于后续调优. 一.在控制台输出SQL语句 在控制台程序中,要查看NHibernate所生成的SQL语句,方法非常简单,只需要改下配置文件就OK了. <property name="show_sql">true</property> <property name="fo

在plsql中输出SQL语句

如何在plsql中快速输出一行语句甚至是一个sql脚本,比如你在页面输入se  然后快速得到select  *  from (1)在plsql中,鼠标单击上面的[工具]选项,在下拉框中选择[首选项] (2)然后进入到首选项的对话框里面,在左边的[用户界面]下单击[编辑器]选项,如图就会在右侧出现可编辑的对话框,然后把滚动条往下拉,就能看到[自动替换]的选项卡 (4)在[自动替换]里,点击[编辑]后,会弹出一个[自动替换定义]可编辑的选项框,在里面填写你要设置的sql,例如: se = selec

使用Hibernate 拦截执行sql语句,并输出sql语句,获取sql语句

重建包名 org.hibernate.type.descriptor.sql 重建类BasicBinder 代码如下 package org.hibernate.type.descriptor.sql; import java.sql.PreparedStatement; import java.sql.SQLException; import org.hibernate.internal.CoreLogging; import org.hibernate.type.descriptor.Jdb

ssm操作控制台输出sql语句 log4j.properties

# Configures Log4j for Tomcat and Sakai # use "A" for log in with catalina.out (actually standard output) log4j.rootLogger=WARN, Sakai # Configuration for standard output ("catalina.out" in Tomcat). log4j.appender.Sakai=org.apache.log4

linq to sql 和 entity framework 输出sql语句

linq to sql: dbcontext.Log 属性,是一个textwriter entity framework: 1 dbcontext.Database.Log, 是一个Action<string>, eg. console.write(string) 2 after 6.1, 也可以设置 interceptor

linq to sql 输出SQL语句

DataClassesDataContext db = new DataClassesDataContext(); db.Log=Response.Output; var result = from de in db.Department where de.DepartmentParentID == 9 select de; GridView1.DataSource = result; GridView1.DataBind();

mybatis 3.2.8 + log4j2.0.2 控制台输出sql语句

mybatis3.2.7有一个bug,使用log4j2 (2.0.2)版本时,会找不到类 ,导致启动失败,详见 https://github.com/mybatis/mybatis-3/issues/235 但没过多久 , 3.2.8就已经修复了这个bug , 最新的mybatis3.2.8下载地址为: https://github.com/mybatis/mybatis-3/releases mybatis 3.2.8 整合 log4j2.0.2并不复杂 , 如果用spring-mvc做为we

mybatis输出sql语句

方法一: 这种方法是mybatis官网上介绍的,比较好用: log4j.properties: log4j.rootLogger=ERROR,consolelog4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=[%-5p] %d