$dbhost,  $dbuser,  $dbpw
$dbhost2,  $dbuser2,  $dbpw2应该是不同的两组值,如果相同就会出现你的情况

解决方案 »

  1.   

    class DBclass {
    var $querynum = 0; function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
    if($pconnect) {
    if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
    $this->halt('Can not connect to MySQL server');
    }
    } else {
    if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
    $this->halt('Can not connect to MySQL server');
    }
    }
    mysql_select_db($dbname);
    mysql_query("set names $dbcharset");
    } function select_db($dbname) {
    return mysql_select_db($dbname);
    } function fetch_array($query, $result_type = MYSQL_ASSOC) {
    return mysql_fetch_array($query, $result_type);
    } function query($sql, $silence = 0) {
    $query = mysql_query($sql);
    if(!$query && !$silence) {
    $this->halt('MySQL Query Error', $sql);
    }
    $this->querynum++;
    return $query;
    } function unbuffered_query($sql, $silence = 0) {
    $func_unbuffered_query = @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query';
    $query = $func_unbuffered_query($sql);
    if(!$query && !$silence) {
    $this->halt('MySQL Query Error', $sql);
    }
    $this->querynum++;
    return $query;
    } function affected_rows() {
    return mysql_affected_rows();
    } function error() {
    return mysql_error();
    } function errno() {
    return mysql_errno();
    } function result($query, $row) {
    $query = @mysql_result($query, $row);
    return $query;
    } function num_rows($query) {
    $query = mysql_num_rows($query);
    return $query;
    } function num_fields($query) {
    return mysql_num_fields($query);
    } function free_result($query) {
    return mysql_free_result($query);
    } function insert_id() {
    $id = mysql_insert_id();
    return $id;
    } function fetch_row($query) {
    $query = mysql_fetch_row($query);
    return $query;
    } function close() {
    return mysql_close();
    } function halt($message = '', $sql = '') {
             global $subflag;
             if ($subflag) require '../include/mysql.error.php';
             else  require './include/mysql.error.php';
    }
    }
      

  2.   

    class DBclass {
    var $querynum = 0;
    function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
    if($pconnect) {
    if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
    $this->halt('Can not connect to MySQL server');
    }
    } else {
    if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
    $this->halt('Can not connect to MySQL server');
    }
    }
    mysql_select_db($dbname);
    mysql_query("set names $dbcharset");
    } function select_db($dbname) {
    return mysql_select_db($dbname);
    } function fetch_array($query, $result_type = MYSQL_ASSOC) {
    return mysql_fetch_array($query, $result_type);
    } function query($sql, $silence = 0) {
    $query = mysql_query($sql);
    if(!$query && !$silence) {
    $this->halt('MySQL Query Error', $sql);
    }
    $this->querynum++;
    return $query;
    } function unbuffered_query($sql, $silence = 0) {
    $func_unbuffered_query = @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query';
    $query = $func_unbuffered_query($sql);
    if(!$query && !$silence) {
    $this->halt('MySQL Query Error', $sql);
    }
    $this->querynum++;
    return $query;
    } function affected_rows() {
    return mysql_affected_rows();
    } function error() {
    return mysql_error();
    } function errno() {
    return mysql_errno();
    } function result($query, $row) {
    $query = @mysql_result($query, $row);
    return $query;
    } function num_rows($query) {
    $query = mysql_num_rows($query);
    return $query;
    } function num_fields($query) {
    return mysql_num_fields($query);
    } function free_result($query) {
    return mysql_free_result($query);
    } function insert_id() {
    $id = mysql_insert_id();
    return $id;
    } function fetch_row($query) {
    $query = mysql_fetch_row($query);
    return $query;
    } function close() {
    return mysql_close();
    } function halt($message = '', $sql = '') {
             global $subflag;
             if ($subflag) require '../include/mysql.error.php';
             else  require './include/mysql.error.php';
    }
    }
      

  3.   

    老兄,我哪有问题? 真搞不懂?如果我把
    $db1    =    new    DBclass;      
    $db1-    >connect($dbhost,    $dbuser,    $dbpw,    $pconnect);      
    $db1-    >select_db($dbname);          
    unset($dbhost, $dbuser, $dbpw, $dbname, $pconnect);$db2    =    new    DBclass;      
    $db2-    >connect($dbhost2,    $dbuser2,    $dbpw2,    $pconnect2);      
    $db2-    >select_db($dbname2); 
    unset($dbhost2, $dbuser2, $dbpw2, $dbname2, $pconnect2);   的上下位置换一下,马上又正常了,这个问题就是,只能读第二个类,第一个类读不到,奇怪
      

  4.   

    多加一个$connection来保存连接的resource
    class DBclass {
    var $querynum = 0;
             var $connection = null; function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
    if($pconnect) {
                               $this->connection = @mysql_pconnect($dbhost, $dbuser, $dbpw);
    } else {
                               $this->connection = @mysql_connect($dbhost, $dbuser, $dbpw);
                      }
    if(!$this->connection) {
            $this->halt('Can not connect to MySQL server');
    }
    mysql_select_db($dbname, $this->connection);
    mysql_query("set names $dbcharset", $this->connection);
    } function select_db($dbname) {
    return mysql_select_db($dbname, $this->connection);
    } function fetch_array($query, $result_type = MYSQL_ASSOC) {
    return mysql_fetch_array($query, $result_type);
    } function query($sql, $silence = 0) {
    $query = mysql_query($sql, $this->connection);
    if(!$query && !$silence) {
    $this->halt('MySQL Query Error', $sql);
    }
    $this->querynum++;
    return $query;
    } function unbuffered_query($sql, $silence = 0) {
    $func_unbuffered_query = @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query';
    $query = $func_unbuffered_query($sql, $this->connection);
    if(!$query && !$silence) {
    $this->halt('MySQL Query Error', $sql);
    }
    $this->querynum++;
    return $query;
    } function affected_rows() {
    return mysql_affected_rows($this->connection);
    } function error() {
    return mysql_error($this->connection);
    } function errno() {
    return mysql_errno($this->connection);
    } function result($query, $row) {
    $query = @mysql_result($query, $row);
    return $query;
    } function num_rows($query) {
    $query = mysql_num_rows($query);
    return $query;
    } function num_fields($query) {
    return mysql_num_fields($query);
    } function free_result($query) {
    return mysql_free_result($query);
    } function insert_id() {
    $id = mysql_insert_id();
    return $id;
    } function fetch_row($query) {
    $query = mysql_fetch_row($query);
    return $query;
    } function close() {
    return mysql_close();
    } function halt($message = '', $sql = '') {
             global $subflag;
             if ($subflag) require '../include/mysql.error.php';
             else  require './include/mysql.error.php';
    }
    }
      

  5.   

    我都想哭了,还是提示错误
    Mysql info: MySQL Query ErrorTime: 2006-10-25 3:51pm
    Script: /touroms/passport.phpSQL: SELECT password FROM corp_member WHERE username = 'netqiu'
    Error: Table 'db2.corp_member' doesn't exist
    Errno.: 1146An error report has been dispatched to our administrator.数据库处理过程中发生错误,请您与网站管理员联系!
      

  6.   

    现在问题是,我这么用,我现在这个登陆读的库是第一个组,不知道他偏偏调的我第二个组的
    把两个库 db2 放前面 db1 放后面,结果又正常,他只读第二个库,奇怪了
      

  7.   

    程序没有经过调试,自己调试一下吧,造成情况是因为现在有两个连接的resource,如果
    mysql_select_db()
    mysql_query()
    mysql_unbuffered_query()
    mysql_affected_rows()
    mysql_error()
    mysql_errno()
    mysql_insert_id()
    mysql_close()
    没有指定连接resource就会用默认的,也就是第二次连接的resource
      

  8.   

    注意!
    当数据库函数需要提供连接字而却没有提供时,php会自动使用最后一次可用的连接字。这就是你的问题所在
    var $conn; //数据库连接字
    function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
    if($pconnect) {
    if(!($this->conn=@mysql_pconnect($dbhost, $dbuser, $dbpw))) {
    $this->halt('Can not connect to MySQL server');
    }
    } else {
    if(!($this->conn=@mysql_connect($dbhost, $dbuser, $dbpw))) {
    $this->halt('Can not connect to MySQL server');
    }
    }
    mysql_select_db($dbname, $this->conn);
    mysql_query("set names $dbcharset", $this->conn);
    } function select_db($dbname) {
    return mysql_select_db($dbname, $this->conn);
    } function query($sql, $silence = 0) {
    $query = mysql_query($sql, $this->conn);
    if(!$query && !$silence) {
    $this->halt('MySQL Query Error', $sql);
    }
    $this->querynum++;
    return $query;
    }
      

  9.   

    var $conn; //数据库连接字这句变数在处理程序中该怎么用?
      

  10.   

    xuzuning(唠叨) var $conn; //数据库连接字这句变数在处理程序中该怎么用?
      

  11.   

    if(!($this->conn=@mysql_pconnect.....
    不是已经写给你了吗?
      

  12.   

    你的程序是这样写的
    $db1- >connect($dbhost, $dbuser, $dbpw, $pconnect);
    $db2- >connect($dbhost2, $dbuser2, $dbpw2, $pconnect2);
    类里头这样写的
    function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
    if($pconnect) {
    if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
    $this->halt('Can not connect to MySQL server');
    }
    } else {
    if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
    $this->halt('Can not connect to MySQL server');
    }
    }
    传了4个 始终打开暂时链接!
    mysql_select_db($dbname); 你给了$dbname 的值了吗?
    数据库连接成功后返回的连接资源句柄没处理,这个可以省略,但经验说不能省略!
    而且始终没有看到你的这句 mysql_query("set names $dbcharset"); 中的$dbcharset在哪里!