Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wysyłanie pustego pliku do przeglądarki przy obsłudze wyjątków
albrzykowski
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 3
Dołączył: 5.02.2007

Ostrzeżenie: (0%)
-----


Witam,

Mam następujący problem, mam własną klasę do obsługi bazy danych i drugą raportującą błędy na zasadzie zapisania informacji o błędzie w bazie.

Oto fragment kodu gdzie skrypt zaczyna się dziwnie zachowywać (opiszę poniżej):
  1. <?php
  2. public function execute($query){
  3.                $this->result = mysql_query($query);
  4.                if($this->result!=FALSE){
  5.                        return $this->result;
  6.                }
  7.                else{
  8.                        throw new ExceptionHandler(_(__CLASS__.': query error: '.$query),3);
  9.                        return FALSE;
  10.                }
  11.  }
  12. ?>


Jeśli w zapytaniu pojawi się błąd, np. zwykła literówka na zasadzie brak ', wtedy zamiast uzyskania błędu w przeglądarce, lub zapisania go przez ExceptionHandler, serwer wysyła mi pusty plik PHP do sićgnięcia przez przeglądarkę (plik typu: application/x-httpd-php).

Jeśli zarzucę obsługę błedów własną klasą i klasycznie zrobie tak:
  1. <?php
  2. public function execute($query){
  3.                $this->result = mysql_query($query) or die(mysql_error);
  4. ?>

Skrypt zachowuje się już w bardziej oczekiwany sposób, tj. wyrzuca błąd i zatrzymuje się.

Proszę o sugestie i z góry dziękuję.

Ten post edytował albrzykowski 18.03.2009, 19:20:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
albrzykowski
post
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 3
Dołączył: 5.02.2007

Ostrzeżenie: (0%)
-----


Hej,

Wyłapuje wyjątek w ten sposób:

  1. <?php
  2. public function select($table,$columns,$conditions=NULL)
  3.    {
  4.        $columns = $this->makeColumns($columns);
  5.        $sql = 'SELECT '.$columns;
  6.        $sql.= ' FROM '.$table;
  7.        if(!empty($conditions))
  8.        {
  9.            $sql.= $this->makeConditions($conditions);
  10.        }
  11.        $sql.=' ORDER BY 'id'';
  12.        if(isset($this->limit)){
  13.            $this->makePagination($table,$conditions);
  14.            $sql.= ' LIMIT '.$this->pagination['startFrom'].','.$this->pagination['limit'];
  15.        }
  16.        try{
  17.            $this->execute($sql);
  18.        }
  19.        catch(ExceptionHandler $e){continue;}
  20.    }
  21. ?>


Pozdrawiam.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 17:16