Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


zeno
Napisane: 16.09.2007, 15:39:34





Grupa: Zarejestrowani
Postów: 2
Dołączył: 15.09.2007

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

Nie ma. Jak lacze sie z mysql bez klasy, tez wszystko jest ok. Problem lezy gdzies w samej klasie.
  Forum: Przedszkole · Podgląd postu: #396764 · Odpowiedzi: 3 · Wyświetleń: 1 191

zeno
Napisane: 15.09.2007, 17:28:28





Grupa: Zarejestrowani
Postów: 2
Dołączył: 15.09.2007

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

Witam.

Od niedawna pisze w klasach (ucze sie pisac), do tej pory nie pisalem zadnych wiekszych rzeczy, po prostu php bylo dodatkiem do xhtml. Teraz chce napisac cos lepszego, ale mam pewien problem.

  1. <?php
  2. class baza
  3. {
  4. public $polaczenie;
  5. public $baza;
  6. public $zapytanie;
  7. public $odpowiedz;
  8.  
  9.  
  10. public function __construct()
  11. {
  12. include("./settings/mysql.php");
  13. if(!$this->polaczenie = @mysql_connect($sql['adres'], $sql['user'], $sql['pass']))
  14. {
  15. $this->bladSql($this->polaczenie);
  16. }
  17. if(!$this->baza = @mysql_select_db($sql['baza'], $this->polaczenie))
  18. {
  19. $this->bladSql($this->baza);
  20. }
  21. }
  22.  
  23. public function bladSql($blad)
  24. {
  25. die('tu komunikat bledu, z '.mysql_errno().': '.mysql_error);
  26. }
  27.  
  28. public function __destruct()
  29. {
  30. @mysql_close($this->polaczenie);
  31. }
  32.  
  33. public function zapytaj($zapytanie)
  34. {
  35. $this->odpowiedz = @mysql_query($zapytanie);
  36. // jeszcze komendy do obslugi bledu, wycialem
  37. }
  38.  
  39. // tutaj szereg innych metod ktore opieraja sie na zapytaj(), wiec wycialem
  40.  
  41. }
  42. ?>


Moj problem jest taki - gdy lacze sie za pomoca $sql = new baza a potem korzystam z metody zapytaj(), czy tez robie standardowym mysql_query z takim samym zapytaniem (chodzi o wstawianie rekordow do bazy) dodaje mi 2 identyko rekordy z roznymi identyfikatorami.

Zapytanie wyglada tak:

  1. <?php
  2. // tutaj moja metoda dodaj() ktora wycialem
  3. $co = $sql->dodaj("content","author,text","'pupa','jasia'");
  4. ?>


  1. <?php
  2. // a tu normalne zapytanie
  3. $co = mysql_query("INSERT INTO content (author,text) VALUES ('pupa','jasia')");
  4. ?>


Obie daja to samo, czyli podwojne rekordy.

Zeby nie bylo, obecnie bazuje na przedstawionej klasie, tj z wycietymi fragmentami po to zeby wyeliminowac miejsca potencjalnego bledu. Podejrzewam ze blad jest w konstruktorze (wszystko dziala normalnie jak sie lacze standardowo, bez uzycia klasy), ale nie mam pojecia jaki.

Prosze o wyrozumialosc smile.gif

PS widzialem tez w googlach podobne tematy, ale niestety albo nie odnosily sie w 100% do mojego problemu (np drugi rekord pusty) albo blad lezal gdzie indziej (np. powtorzenia polecen).
  Forum: Przedszkole · Podgląd postu: #396558 · Odpowiedzi: 3 · Wyświetleń: 1 191


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 4.06.2024 - 08:57