`

如何输出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;

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics