写了一个数据库连接类,大家看看写得怎样 本帖最后由 ykennyy 于 2011-11-18 14:44:40 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //指手画脚一下,勿怪//查询数据库函数 function query($sql){ //echo $sql; $this->result = mysql_query($sql) or die(mysql_error()); } //获取查询值 function fetch(){ // $i = 0; $arr = array(); while ( $re = mysql_fetch_array($this->result) ){ // $arr[$i] = $re; // $i++; $arr[$i] = $re; } return $arr; } fetch()感觉太繁琐了,打散结果集然后又拼成数组不划算。 1、缺少检错机制2、fetch 应更名为 fetchall 即读取全部结果 保留原 fetch 方法名并调整算法 每次读取一条结果3、query 方法总是用 $this->result 保存 mysql_query 的返回 一旦执行了非 select 指令,将导致 fetch 方法失败4、使用单一的变量保存结果集资源,将导致该类的对象不能嵌套使用 public $db_server_name;这一堆变量,最好设为private,否则你的封装只是为了快速调用方法而己,对变量应该保护好。 $this->link既然有了link标识,为何 select db,query 时不用呢??$this->Set_code();既然有了这个接口,何不允许用户自定义呢??如楼上所说,fetch =》 fetchAll 获所有fetchRow 获取行 //这两个必须有吧fetchOne 获得第一行,行一个字段,最好有,有时 select count 的时候很好用。还有获取列之类的,可以有,看需求如果用户执行了insert,那乍样获取自增id?所有的方法,缺少 public private 标识符,标准写法,都需要写上connect , select, setcode 之类的,可以设为private保护。Set_code() 建议使用驼峰方式 setCode urlencode转义字符串的问题 setcookie,总是有问题 php mail 函数 smarty数组问题 新手提问 php字符转换的问题 请教如何调用类里COOKIE值 单选按钮没有选中事件么? linux下php必须编译安装吗?yum里的都版本太低呀 CURL 的POST 提交 不好使 求解决啊 在PHP中如何连接字符串和变量? access for user root@localhost using password: yes NetBeans cpu占用率怎么这么高 懂?
//指手画脚一下,勿怪//查询数据库函数
function query($sql){
//echo $sql;
$this->result = mysql_query($sql) or die(mysql_error());
}
//获取查询值
function fetch(){
// $i = 0;
$arr = array();
while ( $re = mysql_fetch_array($this->result) ){
// $arr[$i] = $re;
// $i++;
$arr[$i] = $re;
}
return $arr;
}
2、fetch 应更名为 fetchall 即读取全部结果
保留原 fetch 方法名并调整算法 每次读取一条结果
3、query 方法总是用 $this->result 保存 mysql_query 的返回
一旦执行了非 select 指令,将导致 fetch 方法失败
4、使用单一的变量保存结果集资源,将导致该类的对象不能嵌套使用
这一堆变量,最好设为private,否则你的封装只是为了快速调用方法而己,对变量应该保护好。 $this->link
既然有了link标识,为何 select db,query 时不用呢??$this->Set_code();
既然有了这个接口,何不允许用户自定义呢??如楼上所说,
fetch =》 fetchAll 获所有
fetchRow 获取行 //这两个必须有吧
fetchOne 获得第一行,行一个字段,最好有,有时 select count 的时候很好用。
还有获取列之类的,可以有,看需求如果用户执行了insert,那乍样获取自增id?所有的方法,缺少 public private 标识符,标准写法,都需要写上
connect , select, setcode 之类的,可以设为private保护。Set_code() 建议使用驼峰方式 setCode