Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pobieranie pojedyńczego wyniku przy pomocy PDO
jolam
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


Po nocnych zmaganiach z PDO potrafię robić proste zapytania SELECT, INSERT, UPDATE czyli prawie wszystko czego potrzebowałam . Jedynie nie potrafię zrobić odpowiednika sqlite_fetch_single
W manualau jest jedynie coś takiego:

  1. <?php
  2. $db = new PDO('mysql:host=localhost;dbname=pictures','user','password'); //1
  3. $pics = $db->query('SELECT COUNT(id) FROM pics'); //2
  4. $this->totalpics = $pics->fetchColumn(); //3
  5. $db = null;//4
  6. ?>


Ten kod, który wkleiłam jest dla mnie mało czytelny, nie rozumiem go. A poza tym ten kod jest dużo dłuższy niż analogiczny w sqlite2, czyli więcej pisania (IMG:http://www.forumweb.pl/images/smiles/icon_sad.gif)

Może napisze co ja z tego rozumiem:

1 tworze połączenie z bazą danych

2 wysyłam zapytanie do bazy a wynik zapytania zapisuje pod zmienną $pics
czyli coś jak $query = sqlite_query( $base, $sqlstm )
i potem coś jak $res = sqlite_fetch_array( $query ) ale nie ma pętli while

3 niestety nic (IMG:style_emoticons/default/wstydnis.gif) (IMG:style_emoticons/default/sadsmiley02.gif)
czytałam o $this w http://pl.wikibooks.org/wiki/PHP/Wst%C4%99...nia_obiektowego ale po prostu tego nie rozumiem (IMG:style_emoticons/default/sad.gif)

4 zamykam połączenie z bazą

Czy nie ma innej możliwości na pobranie pojedynczego wyniki?
Na swojej stronie dość często korzystam z zapytań, które mają zwrócić albo pojedynczy tekst albo cyfrę. Np pytam o parentid dla rekordu id=2598, albo pytam o name dla tego rekordu albo tak jak w przykładzie pytam ile jest rekordów spełniających jakiś warunek.

Bardzo proszę o pomoc gdyż nie umiem sama znaleźć rozwiązania (IMG:http://www.forumweb.pl/images/smiles/icon_redface.gif) (IMG:http://www.forumweb.pl/images/smiles/icon_cry.gif)
A nie chce używać czegoś nie wiedząc czym jest.

pozdrawiam Jola
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Quantum
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


@jolam - proponuje najpierw nauczyć się podstaw OOP, bo bez nich nic z PDO nie zrozumiesz..

  1. $db = new PDO('mysql:host=localhost;dbname=pictures','user','password');
  2. $stmt = $db->query('jakies zapytanie');
  3. $stmt->execute();
  4. $stmt->fetch( ... );


w miejsce kropek podajesz sposób wydobywania danych możesz pozostawić puste, dla przykładu $stmt->fetch(PDO::FETCH_OBJ) zwróci nam obiekt, PDO::FETCH_ASSOC tablice i później zależnie od tego jak ustalisz wydobywujesz dane, przykład:

resztę znajdziesz w manualu z linku ~wookieb
  1. $db = new PDO('mysql:host=localhost;dbname=pictures','user','password');
  2. $stmt = $db->query('SELECT COUNT(id) as records FROM pics');
  3. $stmt->execute();
  4. $totalpics = $stmt->fetch(PDO::FETCH_OBJ);
  5. echo $totalpics->records;
  6.  
  7. //albo tablice asocjacyjna
  8. $totalpics = $stmt->fetch(PDO::FETCH_ASSOC);
  9. echo $totalpics['records'];


akurat w twoim przypadku najprościej będzie użyć FETCH::NUM, tak jak podał ~l3l0

Ten post edytował sniffer32 17.08.2009, 12:08:16
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 00:40