Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PDO pobieranie danych, błąd 500
drax
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 19.06.2010

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


Zaczynam swoją przygodę z OOP i natknąłem się na problem podczas pobierania danych z bazy danych:

Kod
<?php

class admin
{
  private $host = 'mysql:host=localhost;dbname=db501865';
  private $username = 'root';
  private $password = 'root';
  private $conn;
  
  public function connect() {
      try {
          $conn = new PDO($this->host, $this->username, $this->password);
          $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
      } catch ( PDOException $e ) {
          die( 'Connection failed: ' . $e->getMessage() );
      }
      return $conn;
  }
      
  public function disconnect( $conn ) {
      $conn = '';
  }

    
  public function listReal()
    {
        $this ->connect();
        $real = $conn->query('SELECT * FROM `real`');
        echo '<ul>';
        foreach ($real as $row)
        {
            echo'<li><img src="'.$row['image'].'"></li>';
        }
        $real -> closeCursor();
        echo'</ul>';
    }

}
?>


Przy próbie wykonania kodu

Kod
<?php

$db = new admin;
$db ->listReal();

?>

mam błąd internal server error.


Popełniłem pewnie jakiś bardzo podstawowy błąd, ale sam do tego nie mogę dojść więc liczę na waszą pomoc:)

Ten post edytował drax 26.07.2012, 20:28:52
Go to the top of the page
+Quote Post
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Używaj odpowiednich tagów.

Klasa jest zupełnie niepoprawna.
Co ma obiekt admina do bazy danych?

A sam błąd raczej nie ma nic wspólnego z bazą danych, dotyczy raczej ustawień serwera, htaccess, chmody itp.

Ten post edytował markonix 26.07.2012, 20:55:28
Go to the top of the page
+Quote Post
rzymek01
post
Post #3





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


nie odwołujesz się do składowych klsay poprzez $this.

daj na początku (zaraz za <?php) error_reporting(E_ALL);
ale 500-kę wywala raczej z innego powodu ...
Go to the top of the page
+Quote Post
drax
post
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 19.06.2010

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


Już poprawiłem kod i zadziałało:)
Cała klasa ma być klasą do obsługi panelu administratora. Nie wiem czy dobrze to zaczynam, ale tak sobie to wyobraziłem i tak to robię. Nie wiem czy dobrze tak jest?

Wszystko uruchamiam na serwerze z mojego komputera.
Go to the top of the page
+Quote Post
rzymek01
post
Post #5





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


nie wiem czy myslałeś nad nazewnictwem, zastosowaniem jakiegoś wzorca czy po prostu rozrysowałeś sobie diagram klas,
ale po krótce:
- ta klasa, którą masz, powinna się nazywać coś a'la db
- metoda listReal powinna należeć do innej klasy
- klasa Admin niczego nie mówi, spodziewałbym się po niej dziedziczenia po jakimś User z rozszerzeniem pól charakterystycznych dla admina (IMG:style_emoticons/default/wink.gif)

Ten post edytował rzymek01 26.07.2012, 21:48:59
Go to the top of the page
+Quote Post

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.09.2025 - 16:18