2010-07-16 113 views
0

我正在处理定制CMS,对数据库模式和表示层进行了更改。使用下面的代码段,我得到了与mysql_num_fields和mysql_num_rows相关的错误。有人能告诉我为什么会出现这些错误吗?mysql_num_fields():提供的参数不是有效的MySQL结果资源

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; 
     } 

    } 
+1

可能重复[Warning:mysql_fetch_array():提供的参数不是有效的MySQL结果](http://stackoverflow.com/questions/795746/warning-mysql-fetch-array-supplied-argument-is-not -a-valid-mysql-result) – 2011-09-16 17:48:29

回答

1

巴掌mysql_query线后echo mysql_error();网上看到来自服务器的错误。

+0

以下是我收到的响应: 您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,在第1行的'LIMIT 0,6'附近使用正确的语法。 但是,在这个php文件的第1行中,没有任何与Limit 0.6相关的内容。想法? – SidC 2010-07-16 21:12:19

+1

在查询之前拍一个echo $ sql以确保查询是您的想法。 – 2010-07-17 10:17:52

+0

剧情加厚帮派: 回声$ sql后,我现在有一个错误,说明选择*从发票其中id =限制0,6。 限制0,6来自上述代码片段的想法? 谢谢! – SidC 2010-07-18 05:39:41

0

你不试$结果,可以在从请求mysql_query回报为FALSE()

另外,我想改写:

if($order_by!="") 
{ 

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

} 

MySQL不关心多余的空格在这里和那里。

相关问题