Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem pdo
dzesi
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Witam mam problem z zapytaniem w pdo
  1. <?php
  2. $zapytanie_sql=$polaczenie_pdo->prepare("SELECT `login` FROM `admin` where login='".$this->login_admin."' AND haslo='".$this->haslo_admin."'");
  3. $sql=$polaczenie_pdo->query($zapytanie_sql);
  4. $num_rows=$polaczenie_pdo->exec();
  5. if( $num_rows==1)
  6. {
  7. echo "zle dane ";
  8. }
  9. else{
  10. echo "ok";
  11. }
  12. dodam ze wyskakuje błąd Call to a member function prepare() on a non-object - ze nie ma obiektu w tej funkcji 
  13. chce sprawdzić czy login istnieje i hasło w bazie .Trzeba porzucić mysqli na rzecz pdo
  14. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Sabistik
post
Post #2


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


Pokaż jak tworzysz obiekt $polaczenie_pdo
Go to the top of the page
+Quote Post
dzesi
post
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


  1. <?php
  2. public function admin_polaczenie()
  3. {
  4.  // polaczenie 
  5. $baza='mysql:dbname=log_rej;host=localhost';
  6. $user='';
  7. $password='';
  8. try{
  9.  
  10. $polaczenie_pdo = new PDO($baza,$user,$password);
  11. }
  12. catch(PDOException $e)
  13. {
  14. ECHO 'BŁĄD POŁACZENIA' .$e->getMassage();
  15. }
  16.  
  17.  
  18.  
  19. }
  20. ?>


Ten post edytował dzesi 28.02.2008, 12:05:58
Go to the top of the page
+Quote Post
Sabistik
post
Post #4


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


Teraz powiedz gdzie wstawiasz kod przedstawiony w pierwszym poście. Poza metodą admin_polaczenie() ?
Go to the top of the page
+Quote Post
dzesi
post
Post #5





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


nie w nowej funkcji
  1. <?php
  2. public function admin_logoanie($login_admin,$haslo_admin)
  3. {
  4. $zapytanie_sql=$polaczenie_pdo->query("SELECT `login` FROM `admin` where login='".$this->login_admin."' AND haslo='".$this->haslo_admin."'");
  5. $sql=$polaczenie_pdo->query($zapytanie_sql);
  6. $num_rows=$polaczenie_pdo->exec();
  7. if( $num_rows==1)
  8. {
  9. echo "zle dane ";
  10. }
  11. else{
  12. echo "ok";
  13. }
  14. }
  15. ?>

Naprawdę nie wiem co jest nie tak smile.gif , a w ogóle zapytanie dobre jest ?
Gdzieś słyszałem ze pdo musi być globalne ?
Go to the top of the page
+Quote Post
Sabistik
post
Post #6


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


no to wszystko jasne. Odsyłam do przeczytania manuala o zasięgu zmiennych.
Zmienne zdeklarowane w funkcji/metodzie nie są widoczne poza jej ciałem. W Twoim przypadku przy tworzeniu obiektu PDO musisz go zadeklarować w właściwości klasy poprzez $this->polaczenie_pdo = new PDO(); i dowoływać sie podobnie.
Go to the top of the page
+Quote Post
dzesi
post
Post #7





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Jeszcze mam problem z funkcja podobna do num_rows ale w pdo

  1. <?php
  2. $num_rows=$this->polaczenie_pdo->exec();
  3. if($num_rows==1)
  4. {
  5. echo "ok ";
  6. }
  7. else{
  8. echo "zle";
  9. }
  10. ?>

Nie wiem ale jakoś ta dokumentacja do pdo jest ciężko napisana , wiem też ze mam braki z anglika i nie wszystko rozumiem:) worriedsmiley.gif
Go to the top of the page
+Quote Post
Sabistik
post
Post #8


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


W twoim przypadku możesz zrobić np tak:
  1. <?php
  2. $sql = "SELECT count(*) FROM `table` WHERE foo = bar";
  3. $result = $con->prepare($sql);
  4. $result->execute();
  5. $number_of_rows = $result->fetchColumn()
  6. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:13