`

如何输出sql语句

阅读更多

对于Phpcms v9 进行二次开发,数据的操作是不可避免的,虽然数据操作方法能很明显的看出sql语句,但还是没有直接输出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->querycount++;
$this->lastquerysql = $sql;  //给新增的lastquerysql 赋值

 execute 方法被修改为:

private function execute($sql) {
	$chestr = strtolower(trim($sql));
	if(substr($chestr,0,6)=='select') {
		if(!is_resource($this->link)) {
			$this->connect('default');
		}
	}else {
		$this->connect('write');
	}
	$this->lastqueryid = mysql_query($sql, $this->link) or $this->halt(mysql_error(), $sql);

	$this->querycount++;
	$this->lastquerysql = $sql;   //新增
	return $this->lastqueryid;
}

2.修改模型

phpcms/libs/classes/model.class.php

添加获取lastsql的方法

final public function lastsql(){
	return $this->db->lastsql();
}

  3.调用

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

$db = pc_base::load_model('pcbanner_model');
$db->select();

$lastsql = $db->lastsql();
echo $lastsql;

 

分享到:
评论

相关推荐

    log4j打印到控制台输出sql语句

    log4j错误打印到控制台 并且输出sql语句

    log4j.properties(可用于在控制台中输出sql语句)

    这是一个可以在控制台中输出sql语句的log4j的properties文件

    查看LINQ生成SQL语句的几种方法

    在实际开发中,有时我们需要了解LINQ查询是如何转换为SQL语句的,以便于调试和优化性能。以下将详细介绍几种查看LINQ生成SQL语句的方法。 1. **Debug.WriteLine()** 在使用LINQ查询时,可以利用`Debug.WriteLine()...

    EF框架和sql语句的增删改查程序(winform),含sql脚本

    它允许开发者使用面向对象的编程语言(如C#或VB.NET)来操作数据库,而无需直接编写SQL语句。"sql语句"则指传统的结构化查询语言,用于对关系型数据库进行数据操作。 描述中提到有两个项目,一个是通过EF实现的,另...

    如何获得PreparedStatement最终执行的sql语句

    在Java的JDBC编程中,`PreparedStatement`是一个非常重要的接口,它用于预编译SQL语句,提高了数据库操作的效率和安全性。当我们处理大量重复的SQL操作时,使用`PreparedStatement`可以避免SQL注入等问题,同时提升...

    java控制台输出可执行sql,支持oracle,mysql,sqlserver,kingbas

    标题中的"java控制台输出可执行sql"指出这是一个Java库,它的主要功能是能够在控制台上显示应用程序执行的SQL语句。这通常对于调试和优化数据库交互的代码非常有用,因为可以直观地看到程序如何与数据库进行通信。这...

    sql语句万能生成器,sql语句,sql语句生成

    SQL语句是数据库操作的核心,它用于查询、插入、更新和删除数据,是任何数据库管理系统中的基础工具。在IT行业中,编写SQL语句是一项必备技能,但手动编写和调试SQL语句可能会耗费大量时间和精力,尤其在处理复杂...

    sql语句sql语句sql语句sql语句.txt

    sql语句sql语句sql语句sql语句sql语句

    Oracle Sql语句转换成Mysql Sql语句

    本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...

    Java打印漂亮的SQL语句(被格式化的SQL语句)

    "标签"进一步强调了这个工具的关键特性,包括"Java输出漂亮的SQL语句",这意味着它是一个Java环境下的解决方案,能够集成到Java项目中,通过Java代码来调用和实现SQL语句的格式化。另一个标签"SQL格式化"则明确了它...

    sql语句说明sql语句说明sql语句说明.zip

    sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明...

    SQLServer动态SQL语句的用法

    在动态 SQL 语句中,可以使用输入或输出参数来传递数据,例如: declare @QueryString nvarchar(1000) declare @paramstring nvarchar(200) declare @input_id int set @QueryString='select * from tablename ...

    mybatis查询入门(log4j控制台sql语句日记输出的)

    【标题】"mybatis查询入门(log4j控制台sql语句日记输出的)"涉及的知识点主要集中在MyBatis框架的基础使用以及如何通过Log4j在控制台输出SQL语句,以便于调试和优化数据库操作。MyBatis是一个轻量级的Java持久层框架...

    hibernate执行原生sql语句

    "hibernate执行原生sql语句" Hibernate 是一种流行的 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到关系数据库中。然而,在一些情况下,我们需要直接执行原生 SQL 语句,而不是使用 Hibernate 的...

    PB脚本中SQL语句写法与SQL中语句写法对照

    PB脚本中SQL语句写法与SQL中语句写法对照 PB脚本中SQL语句写法与SQL中语句写法对照是非常重要的知识点,因为PB脚本和SQL语言在写法和应用中有所不同。本文将对PB脚本中SQL语句写法和SQL中语句写法进行对比和分析。 ...

    sql语句范例 全面掌握SQL语句

    全面掌握SQL语句 详细的SQL语句介绍 详细的SQL语句介绍 详细的SQL语句介绍 详细的SQL语句介绍

    非常好用的SQL Server 抓取SQL语句工具HOOK

    非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK

    SQLTracker,抓取sql语句的工具

    SQLTracker是一款专为数据库操作监控设计的工具,它在IT领域中主要用于跟踪和记录SQL语句的执行情况。SQL(Structured Query Language)是用于管理关系数据库的编程语言,包括查询、更新、插入和删除数据等操作。SQL...

    完成超长SQL语句执行前拆分

    ### 完成超长SQL语句执行前拆分 #### 概述 在使用Visual Basic (简称VB)进行数据库操作时,可能会遇到因为SQL语句过长而导致无法正常执行的问题。这种情况下,即使该SQL语句可以在SQL Server的查询分析器中成功运行...

    存储过程中怎么动态执行sql语句

    ### 动态执行SQL语句在Oracle中的应用 #### 标题解读 “存储过程中怎么动态执行SQL语句”这一标题表明文章将介绍如何在Oracle数据库的存储过程中编写能够动态执行的SQL语句。动态SQL是指在运行时才能确定其具体内容...

Global site tag (gtag.js) - Google Analytics