2010-07-16 57 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不關心多餘的空格在這裏和那裏。