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();
        }
    }
    ?>
  • 相关阅读:
    剑指 Offer 22. 链表中倒数第k个节点
    1221. 分割平衡字符串
    1528. 重新排列字符串
    1450. 在既定时间做作业的学生人数
    1266. 访问所有点的最小时间
    1572. 矩阵对角线元素的和
    使用Python进行数据传输
    分布式系统的原理与设计
    分布式缓存
    Centos6 配置最新yum源
  • 原文地址:https://www.cnblogs.com/mengdejun/p/phpcmsv9_custom_sql_model.html
Copyright © 2011-2022 走看看