当前位置: 首页 > 后端技术 > PHP

MixPHP独特的SQL构造方法

时间:2023-03-29 18:58:37 PHP

独特的SQL构造方法MixPHP有CUD写操作的专用方法,可以快速构造,使用方法和Yii2完全一样,而R操作完全不同,MixPHP发明了一个新奇的东西施工方法非常简单。SQL在定义复杂查询时,可以动态控制WHERE和JOIN,同时也具有很好的可读性。SQL构建示例:一个比较常见的需求:“动态过滤多条件网页或API”$rows=\Mix::app()->rdb->createCommand([['SELECT*'],['FROM`post`'],['INNERJOIN`user`ON`user`.id=`post`.id','if'=>!is_null($this->name),],['WHERE1=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),],['ORDERBY`post`.idASC'],['LIMIT:offset,:rows','params'=>['offset'=>($this->currentPage-1)*$this->perPage,'行'=>$this->perPage]],])->queryAll();详细分解:当if参数为false时,这段SQL会被忽略。对于params中的参数,pdo会自动将参数绑定到当前的SQL中。当id和name参数都不存在时,将显示所有发布数据。当name参数存在时,因为name在另外一张表中,所以会自动join。SQL还包括分页和排序。通常实现一个这样的需求:在代码的where处使用字符串拼接。使用查询生成器。由于动态判断需要很多if,代码流程会很长,可读性会降低。如果非要手动绑定pdo参数,代码会更加混乱。MixPHP的构造方法可以支持极其复杂的SQL,具有很好的可读性。你想试试吗?MixPHP:https://github.com/mixstart/mixphp高性能?极简主义?多功能,内置服务器基于Swoole的下一代PHP框架。