看上去$db应该是一个db_mysql类的对象喔,检查一下,你是什么时候new 这个对象的。

解决方案 »

  1.   

    回上面的,我是把
    $db=new db_mysql;
    $db->connect($db_hostname, $db_username, $db_password, $db_database);
    这两行放到conn.php中,然后include('./conn.php');
      

  2.   

    看不到完整脚本。仔细检查当前脚本和 conn.php ,或者是当前脚本包含的其他脚本中有没有重复定义类。
      

  3.   

    dy_mysql类如下:<?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");
    }
    }
    ?>
      

  4.   

    conn.php内容如下<?php
    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);
    ?>
      

  5.   

    我在其它页面中,也包含了conn.php。不过我都是用的include_once。
      

  6.   

    if(!@mysql_connect($dbhost, $dbuser, $dbpw))
    把@符号去掉,看看这里有没有什么错误信息。
      

  7.   

    好了,我把conn.php中的include('./include/db_mysql.php');改成once就没问题了。谢谢