2009-07-13 127 views
0

誰能解釋一下下面的PHP代碼確實任何人都可以解釋下面的PHP代碼嗎?


function query($query_string) 
    { 
     if ($query_string == "") { 
      return 0; 
     } 

     if (!$this->connect()) { 
      return 0; 
     }; 

     if ($this->QueryID) { 
      $this->free_result(); 
     } 

     if ($this->RecordsPerPage && $this->PageNumber) { 
      $query_string .= " LIMIT " . (($this->PageNumber - 1) * $this->RecordsPerPage) . ", " . $this->RecordsPerPage; 
      $this->RecordsPerPage = 0; 
      $this->PageNumber = 0; 
     } else if ($this->RecordsPerPage) { 
      $query_string .= " LIMIT " . $this->Offset . ", " . $this->RecordsPerPage; 
      $this->Offset = 0; 
      $this->RecordsPerPage = 0; 
     } 

     $this->QueryID = @mysql_query($query_string, $this->LinkID); 
     $this->Row = 0; 
     $this->Errno = mysql_errno(); 
     $this->Error = mysql_error(); 
     if (!$this->QueryID) { 
      $this->halt("Invalid SQL: " . $query_string); 
     } 

     return $this->QueryID; 
    } 

function next_record() 
    { 
     if (!$this->QueryID) { 
      $this->halt("next_record called with no query pending."); 
      return 0; 
     } 

     $this->Record = @mysql_fetch_array($this->QueryID); 
     $this->Row += 1; 
     $this->Errno = mysql_errno(); 
     $this->Error = mysql_error(); 

     $stat = is_array($this->Record); 
     if (!$stat && $this->AutoFree) { 
      $this->free_result(); 
     } 
     return $stat; 
    } 

,在上面的更簡單的方式來完成,這將是明智使用ORM?

+2

我建議你搜索另一個數據庫訪問類而不是這個,如果你可以... – 2009-07-13 19:10:17

+0

你可以詳細說明,你想讓我使用PDO嗎? – 2009-07-14 07:19:54

回答

5

第一類方法看起來像執行MySQL查詢並添加分頁的LIMIT子句。第二個將當前查詢移動到下一個記錄上,同時遞增分頁計數器。

詳細地說,這裏的第一個樣本:

  • 退出方法,如果查詢爲空或數據庫連接不存在。
  • 釋放任何現有的查詢。
  • 如果每頁和頁碼的記錄數設置:
    • 將它們添加到查詢的LIMIT子句。
    • 而且他們重置爲0
  • 否則,如果每頁記錄設置:
    • 它添加到查詢的LIMIT子句。
    • 並將它們重置爲0.
  • 運行查詢。
  • 將當前行設置爲0.
  • 收集錯誤。
  • 如果查詢失敗並出現錯誤。
  • 返回查詢。

而第二個:

  • 如果查詢未設置停止與錯誤。
  • 將行信息作爲當前行的數組獲取。
  • 遞增行號。
  • 捕獲任何錯誤。
  • 如果結果不是數組空閒/關閉查詢。
  • 否則返回結果集。
0

是的,你是對的羅斯它像一個類中的分頁函數,它逐個調用記錄。

相關問題