sporo czasu poświęciłem na szukanie rozwiązania swojego problemu i próbowałem z nim sam walczyć, ale bezskutecznie.
Nie wiem dlaczego podczas zapytania do bazy UPDATE (czasem SELECT) wywala mi błąd "No database selected". Przy wszystkich innych rodzajach zapytań nie ma tego problemu, a łączę się z bazą w identyczny sposób. Poniżej przedstawiam kod:
Struktura bazy danych:
Kod
id | adres | name | desc | onoff
Funkcja:
function setKategory($id=null,$dane) { $nazwa = $dane['nazwa']; $adres = $dane['adres']; $opis = $dane['opis']; //jesli podano $id do funkcji to aktualizuj if($id != null){ $temp = $this->getKategory(null,$id); if($adres == $temp->adres) { // poniższe zapytanie wywala błąd mysql_query("UPDATE kategorie SET name = '$nazwa', adres = '$adres', desc = '$opis', onoff='$temp->onoff' WHERE id = '$id'"); // poniższe zapytanie wywala błąd } elseif (!mysql_num_rows(mysql_query("SELECT * FROM kategorie WHERE adres = '$adres'")or die(mysql_error()))) { // poniższe zapytanie wywala błąd mysql_query("UPDATE kategorie SET name = '$nazwa', adres = '$adres', desc = '$opis', onoff='$temp->onoff' WHERE id = '$id'"); } //jesli nie, dodaj jako nowy wpis } }
Jeszcze raz podkreślę, że dodawanie nowego rekordu działa bezbłędnie, tylko aktualizacja sprawia problemy. Dodatkowo zaznaczając w samym zapytaniu bazę poprzez taką konstrukcję:
//otrzymuję błąd: SELECT command denied to user ''@'localhost' for table 'kategorie'
Działam na lokalu więc username i password to 'root' i to jest bankówa, wiec o co chodzi?
Błagam o pomoc, bo straciłem na to już wiele czasu i nadal nic.
EDIT: pozbyłem się TABów z kodu zastępując wcięcia 2 spacjami, aby było przejrzyściej.