多加一个$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'; } }
我都想哭了,还是提示错误 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.数据库处理过程中发生错误,请您与网站管理员联系!
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';
}
}
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';
}
}
$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); 的上下位置换一下,马上又正常了,这个问题就是,只能读第二个类,第一个类读不到,奇怪
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';
}
}
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.数据库处理过程中发生错误,请您与网站管理员联系!
把两个库 db2 放前面 db1 放后面,结果又正常,他只读第二个库,奇怪了
mysql_select_db()
mysql_query()
mysql_unbuffered_query()
mysql_affected_rows()
mysql_error()
mysql_errno()
mysql_insert_id()
mysql_close()
没有指定连接resource就会用默认的,也就是第二次连接的resource
当数据库函数需要提供连接字而却没有提供时,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;
}
不是已经写给你了吗?
$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在哪里!