Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]PDO - wyswietlenie rekordow
klapaucius
post
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Pobrać rekordy z bazy danych za pomocą klasy PDO możemy w ten sposob:
  1. $zapytanie = $baza->query('SELECT * FROM tabela');
  2. foreach($zapytanie as $dane){
  3. echo $dane['jakas_tam_kolumna'];
  4. }

Ale czy za każdym razem muszę wywoływać pętlę foreach? Dlaczego np. gdy próbuję zrobic cos takiego:
  1. $zapytanie = $baza->query('SELECT * FROM tabela');
  2. echo $zapytanie[0]['jakas_tam_kolumna']

otrzymuję komunikat:
Kod
Fatal error: Cannot use object of type PDOStatement as array in
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


A co wyświetli taki kod?

  1. $zapytanie = $baza->query('SELECT * FROM tabela');
  2. print_r($zapytanie);
Go to the top of the page
+Quote Post
klapaucius
post
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


yy no takie cos:
Kod
PDOStatement Object ( [queryString] => SELECT * FROM tabela )

czyli ze co... Ta zmienna jest obiektem. No ok. Czyli nie ma innego wyjścia jak tylko użycie foreach, tak?
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


  1. $zapytanie = $baza->query('SELECT * FROM tabela');
  2. $row = $zapytanie -> fetch_row();
  3. print_r($row);


A takie coś?
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Byłeś na stronie dokumentacji http://php.net/manual/en/pdo.query.php ? Jest przykład jak to powinno wyglądać. Skoro każdy wiersz tabeli jest obiektem jak według ciebie ma być to zrobione?
Go to the top of the page
+Quote Post
klapaucius
post
Post #6





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Cytat(viking @ 2.10.2012, 16:16:05 ) *
Byłeś na stronie dokumentacji http://php.net/manual/en/pdo.query.php ? Jest przykład jak to powinno wyglądać. Skoro każdy wiersz tabeli jest obiektem jak według ciebie ma być to zrobione?

Nie wiem.. Np. jakaś funkcja, która by mi te wszystkie obiekty wrzuciła do jakiejś tablicy.

Jeszcze 2 pytanko: jak sprawdzić czy dane zapytanie przebiegło bez błędu?
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Cytat
PDO::query ? Executes an SQL statement, returning a result set as a PDOStatement object

Patrzysz w http://www.php.net/manual/en/class.pdostatement.php i masz fetch, fetchAll, fetchColumn, fetchObject. Przy okazji poczytaj też o http://www.php.net/manual/en/pdo.prepare.php

Objąć blokiem try/catch i przechwycić wyjątek ad2 pytania.

Możesz też poczytać http://wwwgo.pl/article/10/php_data_object...luge_baz_danych

Ten post edytował viking 2.10.2012, 16:48:00
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: 15.09.2025 - 14:46