zoukankan      html  css  js  c++  java
  • phpcmsv9自定义sql语句查询模型实现

    在phpcmsv9中,自定义sql语句查询可不太好实现,传入sql语句查询很容易被内部转入生成一系列莫名其妙的sql语句,比如最佳前缀等等,直接造成sql语句查询错误,在此也提供两种解决办法,1修改底层sql语句实现,这种方法风险较高,全局影响不作推荐。2.自定义万能模型(推荐),顺便奉上万能模型源码:

    <?php
    /**
    * @desc mengdj<mengdj@outlook.com>
    */
    defined('IN_PHPCMS') or exit('No permission resources.');
    pc_base::load_sys_class('model', '', 0);
    class a963_extend_model extends model {
        public function __construct(){
            $this->db_config = pc_base::load_config('database');
            $this->db_setting = 'default';
            parent::__construct();
        }
    
        
        public function sql_query($sql) {
            if (!empty($this->db_tablepre)) $sql = str_replace('phpcms_', $this->db_tablepre, $sql);
            return parent::query($sql);
        }
        
        public function fetch_next() {
            return $this->db->fetch_next();
        }
    
    
        //通过SQL语句查询一条结果
        public function get_one_by_sql($sql){
            $this->sql_query($sql);
            $res = $this->fetch_next();
            $this->free_result();
            return $res;
        }
            //通过sql语句查询数组
        public function get_array_by_sql($sql){
            $this->sql_query($sql);
            $res = $this->fetch_array();
            $this->free_result();
            return $res;
        }
    
        //释放数据库结果资源,调用底层完成
        public function free_result() {
            $this->db->free_result();
        }
    }
    ?>
  • 相关阅读:
    docker中安装ssh服务
    JStorm第一个程序WordCount详解
    centos6.7 安装Docker
    mysql 自连接查询数据
    display属性
    如何书写高效的css样式
    link和@import的区别
    div+css命名规则
    MATLAB的一些小技巧
    高等工程数学 线性规划部分 作业
  • 原文地址:https://www.cnblogs.com/mengdejun/p/phpcmsv9_custom_sql_model.html
Copyright © 2011-2022 走看看