qeephp 的数据库查询
来源:互联网 发布:常州地球人软件 编辑:程序博客网 时间:2024/06/05 22:45
不管一个框架的数据库功能有多么强大,也不可能涵盖数据库的全部功能(甚至常用的部分)。
比如带有表达式或 OR 的查询条件,在现有的框架中并不好用。
例如 fleaphp 里面类似:
可以看出上面的写法是“违背直觉”的。也就是说原本很简单的 SQL语法还得用另一个复杂的方式表达出来。而且如果是非常复杂的查询,只有放弃框架提供的数据库功能,采用手写 SQL 语句来完成。
对于这种现状,我认为是不可接受的。所以在 qeephp 中,允许按照书写 SQL 语句的方式来构造查询:
除了常见的查询条件,在 order、group、sum、min 等各种操作中,都可以使用上面的语法。
可以豪不谦虚的说,qeephp 提供了迄今为止所有 php 开发框架中最强大、最灵活、最直观的数据库操作接口。
比如带有表达式或 OR 的查询条件,在现有的框架中并不好用。
例如 fleaphp 里面类似:
复制PHP内容到剪贴板
其他框架的我就不举例了,大同小异。PHP代码:
$conditions =array(
array( 'Field1','Value1','LIKE','OR'),
array( 'Field2','Value2','=','OR'),
array( 'Field3','Value3','>'),
);
可以看出上面的写法是“违背直觉”的。也就是说原本很简单的 SQL语法还得用另一个复杂的方式表达出来。而且如果是非常复杂的查询,只有放弃框架提供的数据库功能,采用手写 SQL 语句来完成。
对于这种现状,我认为是不可接受的。所以在 qeephp 中,允许按照书写 SQL 语句的方式来构造查询:
复制PHP内容到剪贴板
可以看出,QeePHP 为开发者提供直观的方式来构造数据库查询操作。PHP代码:
// 使用字符串做查询条件
Post::find('id = 1' )
// 使用 ? 作为参数占位符
Post::find('id = ?' , $id)
// 使用多个参数占位符
Post::find('id = ? AND level_ix > ?' , $id, $level_ix)
// 使用数组提供多个参数占位符的值
Post::find('id = ? AND level_ix > ?' , array( $id, $level_ix))
// 使用命名参数
Post::find('id = :id AND level_ix > :level_ix' , array( 'id' => $id, 'level_ix' => $level_ix))
// 使用名值对
Post::find(array('id' => $id, 'level_ix' => $level_ix));
// 使用 [ ] 来转义字段名
Post::find('[id] = 1' );
Post::find('[posts.id] = 1' );
// 使用表达式
$expr = new QDB_Expr('[hits] < AVG([hits])' );
Post::find($expr);
除了常见的查询条件,在 order、group、sum、min 等各种操作中,都可以使用上面的语法。
可以豪不谦虚的说,qeephp 提供了迄今为止所有 php 开发框架中最强大、最灵活、最直观的数据库操作接口。
// 统计符合条件的 Post 对象总数
list($count) = Post::find('tix > 1 AND 'name' LIKE?',"%{$name}")->count()->query();
// 分页查询
$select = Post::find()->limitPage($page_number,$page_size);
$pagination = $select->getPagination();
$posts = $select->query();
// 进行强制关联查询(将 Post 关联的评论查询出来)
$posts =Post::find()->query('comments');
反正组合运用,绝大部分查询操作都不需要手写sql。- qeephp 的数据库查询
- qeephp数据库关联操作
- qeePHP学习 qeePHP模型的CURD
- qeephp 查询对象 QDB_Table_Select 详解
- qeephp QCache_File的应用
- QeePHP的ACL设置
- qeephp的视图压缩输出
- qeephp生成静态html的方法
- YII和qeephp 框架的性能对比
- QeePHP常用的一种路由规则
- qeephp url美化之后的 SEO问题
- QEEPHP一次完整请求的过程(转)
- 库外文档对qeephp控制器的简单访问
- qeephp框架开发的php网站配置流程
- QeePHP中modules下的模块ACL配置规则
- QeePHP framework
- Qeephp框架
- qeePHP学习 qeePHP基本设置
- linux下DMA API
- qeephp数据库关联操作
- 推荐八个配色网站
- JQuery Highcharts 动态图表生成方法
- C#正则截取URL网址字符串
- qeephp 的数据库查询
- c#中odp.net 4.0利用odac操作oracle数据库学习(一)
- Codeforces Round #212 (Div. 2)A
- eclipse关联android源码
- 在项目部署的时候出现表或试图不存在
- linux解压命令
- acm-C++经典程序训练---斐波那契(Fibonacci)数列
- python_修改配置文件参数
- cmd下sqlplus命令登录失败