|
|
%s的用法:addslashes对数据进行转义,防止注入漏洞,常用户字符串操作
代码示例
- <?php
- $data = DB::fetch_first(
- "SELECT * FROM %t WHERE name = %s",
- array(
- 'test_db',
- 'hao'
- )
- );
- debug($data);
复制代码 %s的用法: IN语法,集合查询
代码示例
- <?php
- $data = DB::fetch_all(
- "SELECT * FROM %t WHERE id IN (%n)",
- array(
- 'test_db',
- array(2,3,4,5)
- )
- );
- debug($data);
复制代码 数据库自定义query
在数据库操作的时候,并不是所有的操作都可以用,增删改查能够操作的所以就要用到了query方法
方法名:
DB::query()
参数解释:
$sql:自定义SQL语句
$arg:需要绑定的数据
$silent:执行SQL失败时,是否无提示(默认flase)
$unbuffered:是否使用无缓存查询(默认flase)
资源集转换结果集(将资源转换)
方法名:
DB:fetch()
参数解释:
$resourceid:数据库查询的query资源
$type:数组类型
代码示例1.关联索引
- <?php
- $query = DB::query(
- "SELECT * FROM %t WHERE id < %d",
- array('test_db',5)
- );
- while ($res = DB::fetch($query)) {
- $result[] = $res;
- }
- debug($result);
复制代码 2.数字索引
- <?php
- $query = DB::query(
- "SELECT * FROM %t WHERE id < %d",
- array('test_db',5)
- );
- while ($res = DB::fetch($query,MYSQL_NUM)) {
- $result[] = $res;
- }
- debug($result);
复制代码
3.关联和数字作引二者都有
- <?php
- $query = DB::query(
- "SELECT * FROM %t WHERE id < %d",
- array('test_db',5)
- );
- while ($res = DB::fetch($query,MYSQL_BOTH)) {
- $result[] = $res;
- }
- debug($result);
复制代码
自定义一个删除语句代码实例:
- <?php
- DB::query("DELETE FROM %t WHERE id = %d",
- array('test_db',11)
- );
- debug($query);
复制代码 单字段资源集转换结果集方法
帮助取出指定行的某个字段值,仅取出某一行的第一个字段
方法名:
DB::result()
参数解释:
$resourceid:数据库查询的query资源
$row:指定行的第一个字段
代码实例:
- <?php
- $query = DB::query(
- "SELECT id FROM %t WHERE id < %d ORDER BY id ",
- array('test_db',5)
- );
- $data = DB::result($query,2);
- /* 应该是从0开始的,如果是要查看第一行,则参数为0
- 如果要查看第二行,则参数应该为1*/
- echo $data;
复制代码 result方法一般常用语获取数据表的统计值。
代码实例:
- <?php
- $query = DB::query(
- "SELECT COUNT(*) FROM %t WHERE id < %d ORDER BY id ",
- array('test_db',8)
- );
- $data = DB::result($query,0);
- /*统计id值小于8的,一共有多少条数据*/
- echo $data;
复制代码 资源集行数计算适用于小数据
如果是在大数据情况下使用:"SELECT COUNT(*) FROM %t WHERE id > %d",
方法名:
DB::num_rows()
参数解释:
$resourceid:数据库查询的query资源
方法一:
- <?php
- $query = DB::query(
- "SELECT COUNT(*) FROM %t WHERE id > %d",
- array('test_db',6)
- );
- $data = DB::result($query,0);
- /*统计id值大于8的,一共有多少条数据*/
- echo $data;
复制代码 方法2.
- <?php
- $query = DB::query(
- "SELECT * FROM %t WHERE id > %d",
- array('test_db',6)
- );
- $data = DB::num_rows($query);
- /*统计id值大于8的,一共有多少条数据*/
- echo $data;
复制代码 资源集资源的释放:
由于每一次查询都会产生资源,每一次查询完毕后应将query资源释放,节省内存
方法名:
DB::free_result()
参数解释:
$query:执行SQL语句的query资源
代码实例:
- <?php
- $query = DB::query(
- "SELECT * FROM %t WHERE id > %d",
- array('test_db',6)
- );
- $data = DB::num_rows($query);
- DB::free_result($query);
- echo $data;
复制代码
按字段排序可以自动帮助字段处理,自动加上小单引号等。
方法名:
DB: rder
参数解释:
$field:需要排序的字段
$order:排序的方式(DESC:降序 ASC:升序(默认))
代码示例:
- <?php
- $query = DB::query(
- "SELECT * FROM %t WHERE id > %d ORDER BY".DB::order('id','DESC'),
- array('test_db',6)
- );
- $data = DB::num_rows($query);
- while ($res = DB::fetch($query)) {
- $result[] = $res;
- }
- debug($result);
复制代码
取值区间设定:
设定sql语句中的limit关键字,可用于分页,取出某一个条目数等等....
方法名:
DB::limit()
参数解释:
$start:开始的索引值(以0开始)
$limit:条目数
比如说要取出前三条,应该是0,3
比如说要取从第5条到第8条(从第五条开始,往后取三条),应该是 (5-1),3也就是4,3
代码示例:
- <?php
- $query = DB::query(
- "SELECT * FROM %t WHERE id > %d ORDER BY".DB::order('id').DB::limit(0,3),
- array('test_db',6)
- );
- $data = DB::num_rows($query);
- while ($res = DB::fetch($query)) {
- $result[] = $res;
- }
- debug($result);
复制代码 如果只想取出前3条,不必在limit中写0,3,直接写3即可
- <!-- 方法名:
- DB:fetch()
- 参数解释:
- $resourceid:数据库查询的query资源
- $type:数组类型 -->
- <?php
- $query = DB::query(
- "SELECT * FROM %t WHERE id > %d ORDER BY".DB::order('id').DB::limit(3),
- array('test_db',6)
- );
- $data = DB::num_rows($query);
- while ($res = DB::fetch($query)) {
- $result[] = $res;
- }
- debug($result);
复制代码
字段拼接
方法名:
DB::implode()
取得的结果形式 `id`='10' , `name`='hahah'
好处:自动把字段的值添加引号
自动把字段值转义(防止注入漏洞)
参数解释:
$array:需要拼接的字段数组
$glue:字段拼接的字符串
- <?php
- echo DB::implode(array('id' => 10, 'name' => 'hahah"d'),'and');
复制代码 效果:`id`='10' and `name`='hahah\"d'
双引号会自动转义,and为字段拼接的字符串
代码示例
- <?php
- DB::query("UPDATE %t SET ".DB::implode(array(
- 'name' => 'xiaoming',
- 'id' => 15,
- )).'WHERE id=%d',array(
- 'test_db',
- 10
- ));
复制代码
字段数据设定
帮助设定某一个字段是大于,等于还是小于,以及in,notin等等
方法名:
DB::field()
参数
$filed:需要处理的字段名称
$val:字段对应的值
$glue:链接字段与值的类型
- <?php
- echo DB::field('id','99','=');
复制代码 运行结果:`id`='99'
- <?php
- DB::query("UPDATE %t SET".DB::field('id',99,'=')."WHERE id=%d",array(
- 'test_db',5
- ));
复制代码 把id值为5的数据的id值修改为99.
in语法
- <?php
- echo DB::field('name',array('aaa','bbb','ccc'),'in');
复制代码 运行结果:`name` IN('aaa','bbb','ccc')
- <?php
- echo DB::field('id',10,'+');
复制代码 运行结果:`id`=`id`+'10'
- <?php
- echo DB::field('id',10,'<');
复制代码 运行结果:
`id`<'10'
|
|