1-Quando una query non funziona bisogna testarla con phpmyadmin. Per fare cio’ metto sempre le query in variabili e uso quelle nel comando query. Cosi posso fare una print del contenuto e vedere se é ben strutturata e/o copiarne il contenuto in phpmyadmin.
2-Com’é fatta adesso la query è atta alle sql injection. Se il dato è un indirizzo mail devi fare la query solo se il valore passato è un indirizzo mail.
3-Usi mysql in modo oop e poi lo usi in modo procedurale. Forse è questo il problema.