Herkes şu PHP kodu açıklayabilir misiniz?

2 Cevap php

Herkes Aşağıdaki PHP kodu ne açıklayabilir misiniz


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


Basit bir şekilde yapılabilir üzerinde, bir ORM kullanmak akıllıca olacaktır miyim?

2 Cevap

Bir MySQL sorgusu gerçekleştirir ve sayfalandırmada bir LIMIT ifadesini ekler gibi birinci sınıf yöntemi görünüyor. Sayfalama sayaçları artırma iken ikinci, bir sonraki kaydı üzerine geçerli sorguyu taşır.

Daha ayrıntılı olarak, burada ilk örnek:

  • Sorgu boş veya veritabanı bağlantısı yoksa yöntemini çıkın.
  • Varolan herhangi bir sorgu özgür.
  • If the number of records per page and page number are set:
    • Sorgunun SINIRI fıkrasında ekleyebilirsiniz.
    • Ve 0'a bunları sıfırlamak.
  • Otherwise if records per page is set:
    • Sorgunun SINIRI fıkra onu ekle.
    • Ve 0'a bunları sıfırlamak.
  • Sorguyu çalıştırın.
  • Geçerli satırı 0 olarak ayarlayın.
  • Hataları toplayın.
  • Sorgu hata ile durmasına başarısız olursa.
  • Sorguyu dönün.

Ve ikinci:

  • Sorgu bir hata ile durdurmak ayarlı değilse.
  • Geçerli satır için bir dizi olarak satır bilgisini döndürür.
  • Satır sayısını artırmak.
  • Hataları yakalamak.
  • Sonuç özgür bir dizi değilse / sorguyu kapatın.
  • Aksi takdirde sonuç kümesi döndürür.

Evet Ross birer birer kayıtları çağıran bir sınıfta Sayfalandırması işlevi gibi bir şey doğru.