Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Zapis nie do tej tabeli
Wolfie
post 14.08.2009, 11:14:28
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

Posty w temacie


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: 14.08.2025 - 17:54