资讯专栏INFORMATION COLUMN

MixPHP 独特的SQL构建方式

wangbinke / 1608人阅读

摘要:独特的构建方式对这些写操作都有专用方法,可快速构建,使用方法也与完全一至,而操作完全不一样,发明了一种新奇的构造方式,非常简单的方式,在定义复杂查询时,可使动态控制,还具有良好的可读性。内的参数,自动绑定参数至当前内。

独特的SQL构建方式

MixPHP 对CUD这些写操作都有专用方法,可快速构建,使用方法也与 Yii2 完全一至,而R操作完全不一样,MixPHP 发明了一种新奇的构造方式,非常简单的方式,在定义复杂查询时,可使 SQL 动态控制 WHERE、JOIN ,还具有良好的可读性。

一个SQL构建的例子:

一个比较常见的需求: “多条件动态筛选网页或API”

$rows = Mix::app()->rdb->createCommand([
    ["SELECT *"],
    ["FROM `post`"],
    [
        "INNER JOIN `user` ON `user`.id = `post`.id",
        "if" => !is_null($this->name),
    ],
    ["WHERE 1 = 1"],
    [
        "AND `post`.id = :id",
        "params" => ["id" => $this->id],
        "if"     => !is_null($this->id),
    ],
    [
        "AND `user`.name = :name",
        "params" => ["name" => $this->name],
        "if"     => !is_null($this->name),
    ],
    ["ORDER BY `post`.id ASC"],
    ["LIMIT :offset, :rows", "params" => ["offset" => ($this->currentPage - 1) * $this->perPage, "rows" => $this->perPage]],
])->queryAll();

详细分解:

if 参数为 false 时,该段 SQL 会忽略。

params 内的参数,自动 pdo 绑定参数至当前 SQL 内。

id, name 两个参数都没有时,会显示 post 全部的数据。

name 参数存在时,因为 name 在另一个表,会自动 join。

SQL 内还包含分页、排序。

通常实现一个这样的需求:

在代码内使用 string 拼接 where。

使用查询构造器。

由于动态判断需很多 if ,会导致代码流程很长,可读性降低,如果还要手动做 pdo 参数绑定的话,代码就更混乱了。

MixPHP 这一构建方式,可支持及其复杂的SQL,且可读性良好,你是否要试试?

MixPHP:https://github.com/mixstart/mixphp
高性能 • 极简 • 多功能,
内置 Server 基于 Swoole 的次世代 PHP 框架 。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26002.html

相关文章

  • MixPHP:基于 Swoole 常驻内存型 PHP 框架

    摘要:框架最新源代码行数行,因此可以很容易的改造它,成为你们公司的专属框架。也不同于其他基于的微服务框架,只聚焦于微服务治理,定位于开发的更多领域,覆盖从初创到亿元级体量的技术诉求。的授权全靠用户自愿购买,详情 MixPHP是什么 MixPHP 是秉承 普及 PHP 常驻内存型解决方案,促进 PHP 往更后端发展 的理念而创造,采用 Swoole 扩展作为底层引擎,围绕常驻内存的方式而设计,...

    王晗 评论0 收藏0
  • MixPHP 环境搭建之 Apache + PHP

    摘要:在多种环境中迁移,代码无需修改,是无缝迁移的。由于大部分用户开发是在中进行,因此开发阶段我们推荐使用部署方案,因为更简单快速,下面整体演示一下的环境搭建。安装解压至指定安装目录。先不要启动,这会启动会报错,没加环境变量。 MixPHP 是一款基于 Swoole 的常驻内存型 PHP 高性能框架。 MixPHP 同时支持多种环境中执行: Nginx + mix-httpd (使用到 S...

    Barrior 评论0 收藏0
  • MixPHP 环境搭建之 Apache + PHP

    摘要:在多种环境中迁移,代码无需修改,是无缝迁移的。由于大部分用户开发是在中进行,因此开发阶段我们推荐使用部署方案,因为更简单快速,下面整体演示一下的环境搭建。安装解压至指定安装目录。先不要启动,这会启动会报错,没加环境变量。 MixPHP 是一款基于 Swoole 的常驻内存型 PHP 高性能框架。 MixPHP 同时支持多种环境中执行: Nginx + mix-httpd (使用到 S...

    microelec 评论0 收藏0

发表评论

0条评论

wangbinke

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<