我们前面的教程里面学习了使用Jsnpp实现对数据库记录的增删改操作,这篇教程我们将介绍数据库记录的查询操作。
Jsnpp框架对数据库的查询有很多种,这篇我们先来看最简单的查询操作。
单记录查询:
单记录查询指只需要查询出一条记录,查询结果可以用一维数组的方式获得。
先看下面的示例代码:
$this->app->db->table('users')->where('id', 3)->field('id,name')->find()->finish();
上面的代码就是单记录查询的语句。这里也是使用全链方式来进行查询操作的。
“$this->app”表示应用开启,中间一直到“->find()”为止是数据库操作语句,最后的“->finish()”是全链结束。
中间的查询语句表示从“users”表里面查找“id”为3的记录,并且输出“id”和“name”字段。
“table”和“where”前面的教程里面都有涉及到,这里不再赘述。“->field('id,name')”是新见到的,这个表示要显示的是哪些字段,我们的例子里面只是要求输出“id”和“name”两个字段。您可以根据实际编程需要输出更多的字段,例如下面的代码:
->field('id,name,age,...')
上面的省略号表示可以添加任意多个字段名。
“->find()”表示只查找满足where条件的第一条记录。
多记录查询:
多记录查询是指可以返回多条记录的查询,查询结果是二维数组表示的结果集,看下面的代码:
$this->app->db->table('users')->where('id', '>', 3)->field('id,name')->select()->finish();
上面的语句跟单记录查询很相似,区别仅仅是where条件有点不一样,另外就是把“find”换成了“select”。
我们看到这行示例代码也是全链语法,他表示查找“users”数据库表里面“id”大于3的所有记录,并且输出“id”和“name”两个字段的值。
分页查询:
上面的多记录查询是把满足条件的记录一次性查找出来,但在实际应用中,我们常常会使用分页查询,也就是说,每次只查询全部记录的一部分,分成多次查询。
要实现分页查询,在Jsnpp框架里面实现是很简单的,我们看下面的代码:
$this->app->db->table('users')->where('id', '>', 3)->field('id,name')->paging(10)->select()->finish();
您可以比较一下上面这行代码和前面演示的多记录查询的代码,我们可以发现除了增加了“->paging(10)”之外,完全一样。
“->paging(10)”的意思就是分页查询,并且每页查找10条记录。这里的参数10是可以变更的,如果您希望每页查找20条记录,那么只需改成20就可以了,像这样“->paging(20)” 就可以实现每页查找20条记录了。
是不是感觉Jsnpp框架的数据库操作十分简单易用,事实也是如此。
但是分页查询的结果集跟多记录查询不一样,多记录查询的结果集是一个规范的二维数组,分页查询的结果集是一个组合数组,关于结果集怎么获取和应用,我们在后面的教程里面会详细介绍。