Problém s dotazováním na databázy

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Miky0007
Člen | 73
+
0
-

Napsal jsem funkci pro registraci uživatelů…Dříve fungovala normálně a najednou přestala chodit..

 public function addUser($nick,$heslo,$email){
         dump($nick);
        if(!$this->database->table('uzivatele')->where('nick', $nick)){

                $radek=$this->database->table('uzivatele')->insert(array(

                     'nick' => $nick,
                     'email' => $email,
                     'heslo' => md5($heslo),
                     'registrace'=> new DateTime(),
                    ));
                    $radek1=$this->database->table('uzivatelske_role')->insert(array(
                       'uzivatel_id'=> $radek->id,
                       'uzivatelska_role_id'=> '3',
                     ));
        }
         else{
                throw new DuplicateNameException();
         }
    }\--

Problém je v tom, že funkce vždy vyhodí tuto výjimku:
throw new DuplicateNameException();

Přitom když neexistuje v tabulce uživatele registrovaný nick..Tak by ji vyhazovat neměl…
Nenapadá někoho v čem by mohl být problém? Nějak asi přestal fungovat tento if:

if(!$this->database->table('uzivatele')->where('nick', $nick))

Editoval Miky0007 (5. 1. 2013 16:38)

Miky0007
Člen | 73
+
0
-

Přitom v položce queries v nette baru je 0…

castamir
Člen | 629
+
0
-

Vyzkoušej

if($this->database->table('uzivatele')->where('nick', $nick)->fetch() === FALSE)
{...}
Miky0007
Člen | 73
+
0
-

Už to běhá děkuju moc…A neví někdo proč to moje přestalo fungovat?

Editoval Miky0007 (5. 1. 2013 17:06)

Jan Mikeš
Člen | 771
+
0
-

Tohle by teoreticky nemelo fungovat nikdy :) fetch() totiz vraci activeRow nebo false v pripade ze nenajde zadny zaznam, where vraci vzdy selection, i kdyby tam bylo 1000 zaznamo nebo 0

api: https://api.nette.org/…lection.html#… vs https://api.nette.org/…lection.html#…

Editoval Lexi (5. 1. 2013 18:14)