Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]execute - on a non-object
Forum PHP.pl > Forum > Przedszkole
klynna
Witam, wszystkich.
Napotkałem na kolejny zapewne banalny problem, a mianowicie, nie potrafię wyświetlić tabeli.....

używam xampa, baza standardowo na mysql'u, oraz używam pdo.

Błąd:
Fatal error: Call to a member function execute() on a non-object in C:\xampp\htdocs\Zadanie_A\connect.php on line 29

kod jest śmiesznie prosty, wygląda na stępująco:

  1. <?php
  2. class Baza{
  3. public $pdo;
  4. public $kwerenda;
  5.  
  6. public function polacz(){
  7. try{
  8. $pdo = new PDO('mysql:host=localhost;dbname=gmerek','Zadanie_A','haslo');
  9. echo 'Połączenie nawiązane!';
  10. //header("Refresh: 1;");
  11. }
  12. catch(PDOException $e){
  13. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  14. header("Refresh: 1; index.php");
  15. }
  16. }
  17.  
  18. public function wyswietl($tabela){
  19. $this->kwerenda=$this->pdo->execute("SELECT * FROM $tabela");
  20. foreach($this -> kwerenda as $row){
  21. print_r($row['IMIE']);
  22. }
  23. }
  24. }
  25. $ob = new Baza();
  26. $ob -> polacz();
  27. $ob -> wyswietl('klient');
  28. ?>


Tabela klient zawiera oczywiscie kolumnę imię.

1. Możecie coś doradzić w tej sprawie?
2. Kiedy w zmiennych używa się $ a kiedy nie ?
nospor
Nie: $pdo = new PDO('mysql:host=localhost;dbname=gmerek','Zadanie_A','haslo');
a: $this->pdo = new PDO('mysql:host=localhost;dbname=gmerek','Zadanie_A','haslo');

Skoro uzywasz klas to zaprzyjaznij sie z $this
karakara
2) A gdzie spotkałeś się że zmienna nie ma $ questionmark.gif
nospor
Pewnie tu:
$this->kwerenda
tylko ze to nie jest juz niejako zmienna w sensie zmienna, a wlasciwosc obiektu, stad inny zapis.
karakara
Bo zmienne zawszę są z $
klynna
użyłem $this przy tworzeniu obiektu podczas połączenia oraz zmieniłem funckję z execute na query i teraz ładnie działa.

Dziękuję za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.