本帖最后由 ykennyy 于 2011-11-18 14:44:40 编辑

解决方案 »

  1.   


    //指手画脚一下,勿怪//查询数据库函数
            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()感觉太繁琐了,打散结果集然后又拼成数组不划算。
      

  3.   

    1、缺少检错机制
    2、fetch 应更名为 fetchall 即读取全部结果
       保留原 fetch 方法名并调整算法 每次读取一条结果
    3、query 方法总是用 $this->result 保存  mysql_query 的返回
      一旦执行了非 select 指令,将导致 fetch 方法失败
    4、使用单一的变量保存结果集资源,将导致该类的对象不能嵌套使用
      

  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