Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]execute - on a non-object
klynna
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.03.2013

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


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 ?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
karakara
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 6
Dołączył: 22.09.2012

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


2) A gdzie spotkałeś się że zmienna nie ma $ (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Pewnie tu:
$this->kwerenda
tylko ze to nie jest juz niejako zmienna w sensie zmienna, a wlasciwosc obiektu, stad inny zapis.
Go to the top of the page
+Quote Post
karakara
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 6
Dołączył: 22.09.2012

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


Bo zmienne zawszę są z $

Ten post edytował karakara 14.03.2014, 13:07:01
Go to the top of the page
+Quote Post
klynna
post
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.03.2013

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


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 (IMG:style_emoticons/default/smile.gif)
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: 5.10.2025 - 20:39