PHP链式调用

第一种方式

<?php

/**
 * PHP 链式调用构造一个查询语句
 * Class Mysql
 */
class Mysql {

    //SQL语句
    private $sql = 'SELECT';

    /**
     * 数据库初始化
     * @param array $config 配置项
     */
    public function __construct(array $config) {
        //逻辑处理
    }

    /**
     * 查询字段
     * @param $fields
     * @return $this
     */
    public function fields($fields) {
        $this->sql .= ' ' . $fields;
        return $this;
    }

    /**
     * 操作表
     * @param $table
     * @return $this
     */
    public function table($table) {
        $this->sql .= ' FROM ' . $table;
        return $this;
    }

    /**
     * where条件
     * @param $where
     * @return $this
     */
    public function where($where) {
        $this->sql .= ' WHERE ' . $where;
        return $this;
    }

    /**
     * 排序
     * @param $order
     * @return $this
     */
    public function order($order) {
        $this->sql .= ' ORDER BY  ' . $order;
        return $this;
    }

    /**
     * limit限制
     * @param $limit
     * @return $this
     */
    public function limit($limit) {
        $this->sql .= ' LIMIT ' . $limit;
        return $this;
    }

    /**
     * 构造SQL
     * @return string SQL语句
     */
    public function buildSql() {

        return $this->sql;
    }
}


$mysqlObj = new Mysql(array());
$retSql = $mysqlObj
    ->fields('*')
    ->table('bi_company')
    ->where("`product_id` = 'A001' AND `is_del` = '0'")
    ->order('`company_id` DESC')
    ->limit('0, 50')
    ->buildSql();

echo '生成SQL:'.$retSql;

//生成SQL:SELECT * FROM bi_company WHERE `product_id` = 'A001' AND `is_del` = '0' ORDER BY  `company_id` DESC LIMIT 0, 50
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容