Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zapis nie do tej tabeli
Forum PHP.pl > Forum > Przedszkole
Wolfie
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'....
piotrekkr
if($this->tableName == 'tokens') {...}
Wolfie
Udalo mi sie do tego dojsc wczesniej winksmiley.jpg ale dzieki za pomoc......
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.