Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > PHP > PEAR::DB_QueryTool简介及其不爽之处
【标  题】:PEAR::DB_QueryTool简介及其不爽之处
【关键字】:PEAR,DB_QueryTool
【来  源】:http://www.cublog.cn/u/14321/showart.php?id=138149

PEAR::DB_QueryTool简介及其不爽之处

Your Ad Here
使用pear::DB_QueryTool也有一段时间了,用这个东西一直感觉不错,它可以使你以最简单方便的构建你所需要的各种SQL语句.,以下是它常用的一些方法:
 
查询类
get($id,$column) //返回主键等于$id的记录,$column用来指定要返回的字段
getMultiple($ids,$column) //类似get(),但可用数组
getAll()//返回全部结果
getCount()//符合条件的记录数
 
更新
add($data) //加入新记录,$data为字段名=>值的数组
addMultiple($data) //一次加入多条记录,$data为二维数组
update($data) //更新记录,$data为要更新的字段及新值的数组
save($data) //如果$data中存在主键,则调用update,否则调用add()
 
以上都可另外指定where条件,见setWhere和addWhere
 
删除
remove($data,$whereCol) //以$whereCol = $data为条件删除,可只用字段名键值对的$data参数,这时第二参数会被忽略
removeAll();//清空表
removeMultiple($ids,$colName)//以数组传递要删除的id
 
其它设定
setLimit($from=0,$count=0);
setOrder($orderCondition,$desc=false);
setHaving($havingCondition)
setGroup($group);
setWhere($whereCondition);
addWhere($whereCondition,$condition = 'AND');//加入一个条件,用and连接之前的
addWhereSearch($column,$stringToSearch,$condition); //构造where $column like %$stringToSearch%条件
setSelect($column)//要返回的字段
setLeftJoin($table,$where) //用$where构造左联接
setRightJoin($table,$where)//右联
 
 
一些技巧:
可以使用变量 _lastQuery 返回最后执行的sql语句,getQueryString()方法只返回最后执行的select类语句
用execute()方法可以执行自已手动构建的sql语句,或者直接用$db -> xx,在这里$db一般为pear::DB对象,在一个继承自DB_QueryTool的类中,可以直接调用$db对象的方法
 
这两天碰到的不爽:
要想构造一个类似
update table set times=times+1,d=now(),name="abc" where id=2
的查询,须将raw参数设为true(默认为false):setOption('raw',true);
但设为true后,所有字段都不会被"引用",需要手工处理,如:
$data['id'] = 2;
$data['times'] = "times+1";
$data['d'] = "now()";
$data['name'] = $db->quoteSmart("abc"); //使用$db对象的方法,当然,实际应用时,abc可能直接来自客户端的post
update($data);
 
一个极其郁闷的不爽:
做了很多功夫,发现都达不到以下目的,无论怎么搞,都只能得到
update `tableName` set times = times+ ,d = now(),name='abc' where id=2
 
最后查看它的源码,发现它会检查字段的长度,我的times原来长度为int(6),无论怎么搞,它都只载取前面6位...
 
不写了,看球去...
 
 
 
perl引用理解(留):【上一篇】
区长热线运行六年之际再获殊荣:【下一篇】
【相关文章】
  • PEAR::Cache_Lite(用于实现页面缓存)
  • 使用Pear的RPN库处理工资计算公式
  • PEAR::MDB2模块调用机制
  • 初探PEAR::MDB2
  • symfony - pear方式安装过程
  • 利用pear:Net_SMTP类发送邮件
  • PEAR::HTML_QuickForm与Smarty 的结合应用
  • PHP 5.0 Pear安装方法
  • PEAR安装
  • PEAR类使用手记
  • 【随机文章】
  • Mysql常用函数列表
  • dns server配置问题总结
  • 通过端口获取IDE硬盘ID
  • Hibernate二次笔记 之 从one-to-many分析处理技巧
  • 踩个脚印先
  • 用fireworks制作五色圆盘
  • 游戏引擎剖析(九)
  • 网络安全产品技术发展趋势(1)
  • SUN F4800安装步骤
  • 在debian testing下安装ATI X系列显卡驱动的方法(zz)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.