mysql_num_fields():提供的参数不是有效的MySQL结果资源

时间:2010-07-16 20:38:26

标签: php mysql

我正在开发自定义CMS,对数据库架构和表示层进行了更改。我使用以下代码部分得到相对于mysql_num_fields和mysql_num_rows的错误。有人能告诉我为什么会出现这些错误吗?

public function viewTableData($db_name,$table_name,$fld01,$where_clause,$order_by,$asc_desc){

           mysql_select_db($db_name);

        if($fld01!="")
        {

            $sql = "Select $fld01 from $table_name";

        }
        else
        {

            $sql = "Select * from $table_name";

        }

        if($where_clause!="")
        {

            $sql=$sql." ".$where_clause;

        }

        if(($order_by!="")&&($asc_desc!=""))
        {

            $sql=$sql." ".$order_by." ".$asc_desc;

        }
        else if(($order_by!="")&&($asc_desc==""))
        {

            $sql=$sql." ".$order_by;

        }

        //return "<br/>sql  :".$sql;

        $result = mysql_query($sql);

        $count_fields = mysql_num_fields($result); 

        $count_rows = mysql_num_rows($result);

        if($count_rows>0)
        {
        $index = 0;

            unset($this->data_array);

          while ($row = mysql_fetch_assoc($result)) {

             $this->data_array[] = $row;

          } // while

    //Finally we release the database resource and return the multi-dimensional array containing all the data.

          mysql_free_result($result);

          return $this->data_array;
       }

    }

2 个答案:

答案 0 :(得分:1)

echo mysql_error();行后面按mysql_query行,以查看来自服务器的错误。

答案 1 :(得分:0)

你没有测试$ result,从mysql_query()返回时可能为FALSE

另外,我会改写:

if($order_by!="")
{

    $sql.=" ".$order_by." ".$asc_desc;

}

MySQL并不关心这里和那里的额外空间。