Ciao a tutti,
è possibile gestire gli errori con mysql e non con php, in maniera tale da non fare inutili select? Mi spiego :
Ho una tabella per gli utenti, e vorrei che gli ogni utente differisca dall'altro per username ed email. A questo punto , in fase di registrazione, per controllare se un utente è gia registrato con quell'user o email andrebbe fatta una select. Per evitare tutti questi accessi al db (select per il controllo, eventuale insert per la registrazione) è possibile ricevere un errore dal db dopo aver fatto la insert ?
Ho provato così :
Codice PHP:
CREATE TABLE IF NOT EXISTS UTENTI (
user char(25) NOT NULL,
email char(60) NOT NULL,
pass char(128),
CONSTRAINT MIACHIAVE UNIQUE (user, email)
);
insert into utenti(user,email) values('simone','simoness');
insert into utenti(user,email) values('simone','simoness1111');
Così facendo, se ALMENO uno dei due campi è diverso (in questo caso email) posso aggiungere entrambi i record, e ciò non soddisfa le mie esigenze. Ho provato però ad usare la clausola UNIQUE sui due campi user/email , riesco a fare ciò che desidero ma lato php poi non so quale dei due campi è stato violato, cioè se l'utente ha inserito un'email o una user gia registrata, o magari tutti e due. Il mio obiettivo è quindi quello di far fare al sito, in fase di registrazione, sempre e solo la insert, e di replicare poi all'utente l'eventuale messaggio di conferma/errore restituito dal db.
In più, mi piacerebbe sapere se è possibile , usando la clausola CHECK , controllare che il campo mail sia del tipo '%@%.%' , in maniera tale da verificare se l'utente ha inserito una mail corretta. Forse però , dato che il mio intento è quello di fare pochi e importanti/concreti accessi al db , sarebbe meglio fare un controllo usando JavaScript.
Potreste aiutarmi a risolvere questo piccolo problemino ? (in particolare il primo punto)