一步一步来:首先,我连接数据库:if (@mysql_select_db($config[db_name])) echo "数据库操作成功!"; 成功输出echo;然后,我输出SQL语句db::mysql("select","vote","","","vote_name = ".$this->vote_name);下面是db类的一个函数的一部分:
mysql(){if ($type == "SELECT") {
   
   $sql = "SELECT * ".$fields." from ".$table_name." where ".$where;………………echo $sql
}参数传递没有问题,成功执行:echo $sql;再接着我执行SQL语句:if   (mysql_query($sql))   echo "查询成功!";成功执行echo "查询成功";$rs = mysql_query($sql);为检查查询记录是否为空,我执行mysql_num_rows($rs),返回记录条数为1,说明查询结果里面却是有一条记录;最后,我输出记录的字段:$rs[vote_name]。问题出来了,什么内容也没有输出~无论我输出那个字段·!数据库字段名没有出错~已经反复检查!使用mysql_query_array()输出也没用;还有这个语句: $sql = "SELECT * ".$fields." from ".$table_name." where ".$where;当我传递给$where参数的值是字符串时,我必须这样书写"  '这是传递给$where的值'   ",双引号里面还有加一个单引号,否则会查询失败!

解决方案 »

  1.   

    $rs = mysql_query($sql);//这$rs返回的不是直接的结果while($row = mysql_fetch_assoc($rs))
    {
     print_r($row);//这样才会输出
    }
      

  2.   


    找你的方法做了,和使用mysql_query_array()一样,错误信息是:
    Warning: mysql_fetch_assoc() expects parameter 1 to be resource参数有误?可是查询的记过确实是有一条记录啊~
      

  3.   

    db::mysql("select","vote","","","vote_name = ".$this->vote_name);下面是db类的一个函数的一部分:
    mysql(){if ($type == "SELECT") {
        
      $sql = "SELECT * ".$fields." from ".$table_name." where ".$where;………………echo $sql
    }参数传递没有问题,成功执行:echo $sql;
    ==================================================================db::mysql有没有返回这句sql语句?你打印只是测试吧?返回要赋值,或者在里面设置全局变量,不过意思一样
      

  4.   


    嗯,这个类函数没有问题的,使用return返回了值。关于第一个问题我已经解决了,第二个问题还没有解决:还有这个语句: $sql = "SELECT * ".$fields." from ".$table_name." where ".$where;当我传递给$where参数的值是字符串时,我必须这样书写" '这是传递给$where的值' "(如:"'第一个投票项目'"),双引号里面还有加一个单引号,否则会查询失败!
      

  5.   

    你的where条件是不是字符串?如果是字符串当然要在双引号里面再加单引号。
      

  6.   

    要学会看错误信息
    Warning: mysql_fetch_assoc() expects parameter 1 to be resource
    警告:mysql_fetch_assoc()预计参数1是资源
      

  7.   

    不行,现在哪怕是加了单引号还是没有用,依然查询失败~
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\vote\test.php on line 13
    这句话的中文意思我也能看懂。可是问题是,我操作的步骤不知道哪里出问题了导致有这个错误信息~~按照大家的意思,修改后的代码是这样的:class vote{

    function split_selections($vote_name){ $rs = db::mysql("select","vote","","","vote_name= '".$vote_name."'");

    return $rs;


    }


    }db类的mysql函数:function mysql($type,$table_name,$fields="",$values="",$where=""){

    mysql_query("SET NAMES GBK"); 

    $type = strtoupper($type);

    if ($type == "SELECT") {$sql = "SELECT * ".$fields." from ".$table_name." where ".$where;
    }
    echo $sql."<br>";

    $q = mysql_query($sql);
           
    return $q;
    }
    test.php文件内容:include("conn.php");$vote = new vote();$rs=$vote->split_selections("第一个投票项目");while($row = mysql_fetch_array($rs)){

     echo $row[vote_name]."<br>";
     
     echo $row[vote_counts];  
     
    }
      

  8.   

    $rs=mysql_query();$row=mysql_fetch_array($rs);var_dump($row);这样看看是否有值。