当前位置: 代码迷 >> SQL >> 怎么输出sql语句
  详细解决方案

怎么输出sql语句

热度:46   发布时间:2016-05-05 10:55:04.0
如何输出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/modell.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;

?

  相关解决方案