一个非常奇怪的问题?有经验的进来看下 看上去$db应该是一个db_mysql类的对象喔,检查一下,你是什么时候new 这个对象的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 回上面的,我是把$db=new db_mysql;$db->connect($db_hostname, $db_username, $db_password, $db_database);这两行放到conn.php中,然后include('./conn.php'); 看不到完整脚本。仔细检查当前脚本和 conn.php ,或者是当前脚本包含的其他脚本中有没有重复定义类。 dy_mysql类如下:<?phpclass db_mysql { var $querynum = 0; function connect($dbhost, $dbuser, $dbpw, $dbname) {//连接数据库 if(!@mysql_connect($dbhost, $dbuser, $dbpw)) { $this->halt('Can not connect to MySQL server'); } if($this->version() > '4.1' && $GLOBALS['charset']) { //ATTENTION: remove the following line if you want to use the default database character set. mysql_query("SET NAMES 'gbk'"); } if($this->version() > '5.0') { mysql_query("SET sql_mode=''"); } if($dbname) { mysql_select_db($dbname); } } 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, $type = '') {//执行sql if($type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query')) { $query = mysql_unbuffered_query($sql); } else { if($type == 'CACHE' && intval(mysql_get_server_info()) >= 4) { $sql = 'SELECT SQL_CACHE'.substr($sql, 6); } if(!($query = mysql_query($sql)) && $type != 'SILENT') { $this->halt('MySQL Query Error', $sql); } } $this->querynum++; return $query; } function affected_rows() {//返回inert,update,delete等影响的行数 return mysql_affected_rows(); } function error() {//返回错误 return mysql_error(); } function errno() {//返回错误号 return intval(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 list_tables($query) {//接受一个数据库名并返回和mysql_query() 函数很相似的一个结果指针 return mysql_list_tables($query); } function free_result($query) {//释放所有与结果 标识符 result 所关联的内存 return mysql_free_result($query); } function insert_id() {//取得上一步INSERT 操作产生的ID $id = mysql_insert_id(); return $id; } function fetch_row($query) {//返回根据所取得的行生成的数组 $query = mysql_fetch_row($query); return $query; } function version() {//返回所使用的服务器版本 return mysql_get_server_info(); } function close() {//关闭mysql连接 return mysql_close(); } function halt($message = '', $sql = '') { exit("MySQL Query:$sql<br> Message:$message"); }}?> conn.php内容如下<?phpinclude('./include/db_mysql.php');$db_username="root"; //连接数据库的用户名$db_password=""; //连接数据库的密码$db_database="mydb"; //数据库名$db_hostname="localhost"; //服务器地址$db=new db_mysql;$db->connect($db_hostname, $db_username, $db_password, $db_database);?> 我在其它页面中,也包含了conn.php。不过我都是用的include_once。 if(!@mysql_connect($dbhost, $dbuser, $dbpw))把@符号去掉,看看这里有没有什么错误信息。 好了,我把conn.php中的include('./include/db_mysql.php');改成once就没问题了。谢谢 大侠求助!Thinkphp 如何输出指定值数据 求个搜索引擎与分页代码 从数据库随机读取 新人求教~关于正则的模式修正符e的问题,为啥我感觉没啥用呢? 请教一个负数时间戳问题 php5.0.4中文版php.ini 第三部分(资源限制/出错处理和日志) $data=@mysql_fetch_array($sql);这句中 “@”什么意思???马上结 PHP中如何取服务器的IP地址(用什么函数) SESSION 问题 大家讨论一下 请问如何动态创建数据表? PHP用什么方法可以判断字符串是UTF-8还是GB2312? sf上搜索php的相关名称的项目怎么搜?
$db=new db_mysql;
$db->connect($db_hostname, $db_username, $db_password, $db_database);
这两行放到conn.php中,然后include('./conn.php');
class db_mysql {
var $querynum = 0;
function connect($dbhost, $dbuser, $dbpw, $dbname) {//连接数据库
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
$this->halt('Can not connect to MySQL server');
}
if($this->version() > '4.1' && $GLOBALS['charset']) {
//ATTENTION: remove the following line if you want to use the default database character set.
mysql_query("SET NAMES 'gbk'");
}
if($this->version() > '5.0') {
mysql_query("SET sql_mode=''");
}
if($dbname) {
mysql_select_db($dbname);
}
} 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, $type = '') {//执行sql
if($type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query')) {
$query = mysql_unbuffered_query($sql);
} else {
if($type == 'CACHE' && intval(mysql_get_server_info()) >= 4) {
$sql = 'SELECT SQL_CACHE'.substr($sql, 6);
}
if(!($query = mysql_query($sql)) && $type != 'SILENT') {
$this->halt('MySQL Query Error', $sql);
}
}
$this->querynum++;
return $query;
} function affected_rows() {//返回inert,update,delete等影响的行数
return mysql_affected_rows();
} function error() {//返回错误
return mysql_error();
} function errno() {//返回错误号
return intval(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 list_tables($query) {//接受一个数据库名并返回和mysql_query() 函数很相似的一个结果指针
return mysql_list_tables($query);
}
function free_result($query) {//释放所有与结果 标识符 result 所关联的内存
return mysql_free_result($query);
} function insert_id() {//取得上一步INSERT 操作产生的ID
$id = mysql_insert_id();
return $id;
} function fetch_row($query) {//返回根据所取得的行生成的数组
$query = mysql_fetch_row($query);
return $query;
} function version() {//返回所使用的服务器版本
return mysql_get_server_info();
} function close() {//关闭mysql连接
return mysql_close();
}
function halt($message = '', $sql = '') {
exit("MySQL Query:$sql<br> Message:$message");
}
}
?>
include('./include/db_mysql.php');
$db_username="root"; //连接数据库的用户名
$db_password=""; //连接数据库的密码
$db_database="mydb"; //数据库名
$db_hostname="localhost"; //服务器地址$db=new db_mysql;
$db->connect($db_hostname, $db_username, $db_password, $db_database);
?>
把@符号去掉,看看这里有没有什么错误信息。