Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Zapis nie do tej tabeli
Wolfie
post
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Witam,

Napisalem klase sluzaca do zapisywania danych do bazy , oto jej czesc :

  1. class Row {
  2.  
  3. public $token;
  4. public $tableName;
  5.  
  6. function __construct($db) {
  7. $this->db = $db;
  8. }
  9.  
  10. public function setToken($token) {
  11. return $this->token = $token;
  12. }
  13.  
  14. function insert() {
  15. if($this->tableName = 'tokens') {
  16. if(!mysql_query("INSERT INTO $this->tableName (id, token, spamcount, hamcount) VALUES (NULL, '$this->token', 0, 1)")){
  17. throw new Exception('Error inserting row');
  18. }
  19. } else {
  20. if(!mysql_query("INSERT INTO $this->tableName (total, totalspam, totalham) VALUES (NULL, 1, 0)")){
  21. throw new Exception('Error inserting row');
  22. }
  23. }
  24. }


Nastepnie mam klase dziedziczaca po tej klasie ktora wyglada tak :

  1. class TotalsRow extends Row {
  2. public $tableName = 'totals';
  3. }


Jak widac ustawiam w klasie pochodnej zmienna ktora ma przechowywac string 'totals'

pozniej wywoluje obiekty :

  1. $totalrow = new TotalsRow(new MysqlDatabase('localhost','root', 'wmateusz', 'spam'));
  2. $totalrow->insert();


No i teraz co jest najdziwniejsze, jak wynika z funkcji insert() w klasie Row wyraznie widac z warunku if else ze jezeli $tableName jest inne niz 'tokens' to powinno zapisywac w drugiej tabeli, tzn powinno wykonywac druga czesc petli if else....

Niestety gdy odpalam skrypt wartosc zapisauja sie nie w tej tabeli co trzeba, zamiast w tabeli 'totals' wszystko zostaje przekazane do tabeli 'tokens'......czyli do pierwszego warunku if else mimo ze w klasa dziedziczaca ma przypisane do zmiennej $tableName = 'totals'....

Ten post edytował Wolfie 14.08.2009, 11:18:05
Go to the top of the page
+Quote Post
piotrekkr
post
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


if($this->tableName == 'tokens') {...}
Go to the top of the page
+Quote Post
Wolfie
post
Post #3





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Udalo mi sie do tego dojsc wczesniej (IMG:style_emoticons/default/winksmiley.jpg) ale dzieki za pomoc......
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: 9.10.2025 - 12:07