第一个只会出错,因为$link为空

解决方案 »

  1.   

    不会出错呀,一切运行都很正常。以下是全部代码,请会的朋友帮忙看看。第一个文件:db.phpclass db_class{
    //数据库连接句丙
    var $link;
    //返回的数据集
    var $rs;
    var $db="1";
    //连接数据库的接口
    //$db要连接的数据库的类型,$db=1时是MSSQL,为2时为mysql
    //$host连接的数据库主机名
    //$user连接的数据库用户名
    //$password连接的数据库密码
    function db_connect($host,$user,$password){
    if($this->db=="1"){
    $this->link=mssql_connect($host,$user,$password);
    }else if($this->db=="2"){
    $this->link=mysql_connect($host,$user,$password);
    }
    }
    //$db_name选择的数据库名;$db_query执行的SQL语句
    function db_s_query($db_name,$db_query){
    if($this->db=="1"){
    mssql_select_db($db_name,$this->link);
    $this->rs=mssql_query($db_query);
    //$this->$rs =mssql_fetch_array($this->rs);
    }else if($this->db=="2"){
    mysql_select_db($db_name,$this->link);
    $this->rs=mysql_query($db_query);
    //$this->$rs =mysql_fetch_array($this->rs);
    }
    }
    //关闭数据库的操作
    function db_close(){
    if($this->db=="1"){
    mssql_close($this->link);
    }else if($this->db=="2"){
    mysql_close($this->link);
    }
    }

    }第二个文件:db_test.php<?PHP
    $db=1;
    $host="localhost";
    $user="user3";
    $password="111";
    $db_name="user4";
    $sql_select="select hf_mess from user_hf";
    $db_open=new db_class();
    $db_open->db_connect($host,$user,$password);
    $db_open->db_s_query($db_name,$sql_select);
    while($rew=mssql_fetch_array($db_open->rs)){
    echo $rew[hf_mess];
    echo "<hr>";
    }
    $db_open->db_close();
    ?>这样是可以运行的。
    但当在类所指向的变量前加上"$"这个符号时就会出错(什么都不会显示),不知道为什么。
      

  2.   

    在类方法内的this指定的成员变量前加上$表示this指针所指向的是一个动态的变量,从$变量中取得值,然后再指向以这个值为定义成员变量。这种通常在类间关联以参数传递为用得多。加上$什么都不会显示,是因为php是弱类语言,没有定义就可以使用,所以如果那个值没有定义也可以使用,值是为空,也就不会有什么结果!