Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie do bazy
gajek
post 22.05.2005, 16:16:27
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.05.2005

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


witam!
W zeszlym tygodniu kupilem sobie ksiazke php i MySQL tworzenie WWW. Ksiazka ladna z plytka i przykladami. No i jak to w wiekszosci przypadkow przyklady nie dzialaja. Dokladnie chodzi o ksiazke wydawnictwa Helion a przyklad z rozdzialu 26. zainstalowalem sobie Krasnala z php 5 i MySQL 3.23.58. No i nic tylko same problem. Mam problem z ponizsza funkcja rejestruj. W przegladarce mam wypisany nastepujacy blad
Cytat
Fatal error: Call to a member function mysql_query() on a non-object in c:\usr\krasnal\www\formularze\funkcje_uwierz.php on line 14


  1. <?php
  2.  
  3. require_once('funkcje_bazy.php');
  4.  
  5. function rejestruj($nazwa_uz, $email, $haslo)
  6. // zarejestrowanie nowej osoby w bazie danych
  7. // zwraca true lub komunikat o błędzie
  8. {
  9.  // połączenie z bazą danych
  10. $lacz = lacz_bd();
  11.  
  12. // sprawdzenie, czy nazwa użytkownika nie powtarza się
  13.  
  14. $wynik = $lacz->mysql_query(&#092;"select * from uzytkownik where nazwa_uz='$nazwa_uz'\");
  15. if (!$wynik)
  16.  throw new Exception('Wykonanie zapytania nie powiodło się.');
  17. if ($lacz->num_rows>0) 
  18.  throw new Exception('Nazwa użytkownika zajęta — proszę wrócić i wybrać inną.');
  19.  
  20. // jeżeli wszystko w porządku, umieszczenie w bazie danych
  21. $wynik = $lacz->mysql_query(&#092;"insert into uzytkownik values
  22.  ('$nazwa_uz', sha1('$haslo'), '$email')&#092;");
  23. if (!$wynik)
  24. throw new Exception('Rejestracja w bazie danych niemożliwa — proszę spróbować później.');
  25.  
  26. return true;
  27. }
  28. ?>



A tak wyglada po modyfikacjach plik funkcje_bazy.php

  1. <?php
  2.  
  3. function lacz_bd()
  4. {
  5.  $wynik=mysql_connect('localhost','root','krasnal');
  6.  
  7.  if (!$wynik)
  8. throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
  9.  else
  10. return $wynik;
  11. } ?>


Prubowalem wstaiac w 'mysql_connect('localhost','root','krasnal');' to wtedy wieszal mi sie przy prubie laczenia.
Prosze o pomoc
pzdr Gajek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
crash
post 22.05.2005, 17:22:36
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


lacz_bd() to funkcja a nie klasa więc nie wykonujesz na wyniku jej działania operacji...
  1. <?php
  2. $baza = lacz_bd();
  3. // ...
  4. mysql_close($baza);
  5. ?>


--------------------
Go to the top of the page
+Quote Post
gajek
post 22.05.2005, 23:16:07
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.05.2005

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


a mogl bym prosic o jakies b prostrze wytlumaczenie questionmark.gif? bo nie wiem czy w takim ukladzie autor ksiazki popelnil blad questionmark.gif?
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 07:33:06
Post #4





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




Może tak:
lacz_bd zwraca ci wynik funckcji mysql_connect, który nie jest obiektem. Ty nie stety ten wynik uzywasz jako obiektu (jesli nie wiesz co to obiekty to se poczytaj o nich).
Wystarczy zrobic tak jak napisal crashu

edit:
poszukalem w tej książce rozdzialu 26 (pewnie mam inne wydanie, ale to nie zmienia faktu). Autor tam nie uzywal skladni którą ty dales czyli:
$wynik = $lacz->mysql_query("select * from uzytkownik where nazwa_uz='$nazwa_uz'");
autor uzyl takiej skladni:
$wynik = mysql_query("select * from uzytkownik where nazwa_uz='$nazwa_uz'",$lacz);

Ten post edytował nospor 23.05.2005, 07:36:43


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:19