2009-07-13 25 views
0

は、誰もがORMを使用するのが賢明だろう、以下の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; 
    } 

は、上記の簡単な方法で行うことができます何を説明できますか?

+2

私はあなたができる場合は、この1つではなく、別のDBアクセスクラスを検索することをお勧めします。 –

+0

あなたは精緻化できますか、私はPDOを使用しますか? –

答えて

5

最初のクラスのメソッドは、MySQLクエリを実行し、ページネーション用のLIMIT句を追加するように見えます。 2つ目は、現在のクエリを次のレコードに移動し、ページネーションカウンタをインクリメントします。クエリが空であるか、データベース接続が存在しない場合

  • の終了方法:

    は、より具体的には、ここで最初のサンプルです。

  • 既存のクエリをすべて解放します。
  • ページとページ番号あたりのレコード数が設定されている場合:
    • は、クエリのLIMIT句に追加します。
    • 、ページあたりのレコードが設定されている場合、それ以外の場合は0
  • にリセット:
    • は、クエリのLIMIT句に追加します。
    • 0にリセットしてください。
  • クエリを実行します。
  • 現在の行を0に設定します。
  • エラーを収集します。
  • クエリがエラーで停止した場合。
  • クエリを返します。

そして第二:クエリがエラーで停止を設定されていない場合

  • 行情報を現在の行の配列として取得します。
  • 行番号をインクリメントします。
  • エラーをキャッチします。
  • 結果が配列でない場合は、クエリをフリーズ/クローズします。
  • それ以外の場合は結果セットを返します。
+0

ありがとうございました。これが私の必要なものです。 –

0

はいあなたは正しいです。レコードを1つずつ呼び出すクラスで、ページ設定機能のようなものです。

関連する問題