If php-mysql

  • Creatore Discussione Creatore Discussione jiw382
  • Data di inizio Data di inizio

jiw382

Nuovo Utente
28 Gen 2006
4
0
0
Salve ragazzi e grazie fin dall'inizio dell'aiuto :byebye:.
Non sono molto ferrato di php-mysql e mi trovo con un problema.
Ho un form di inserimento dati in un db mysql. Il db ha 2 campi come chiave primaria e nel caso in cui l'utente inserisce nuovamente gli stessi record di chiave primaria il db da l'errore dicendo "duplicate ... for key 1". Fin qui tutto bene, la mia intenzione però è quella di avere una pagina ben definita che dia un messaggio comprensibile all'utente: nn tutti capiscono "duplicate ... for key 1"!:).
Non so, forse dovrei impostare un if ma non so come fare. Penso che Voi mi consiglierete il modo migliore!

Grazie
 
Puoi intercettare il codice di errore di MySQL che per la chiave duplicata deve essere il 1062. Puoi provare in questo modo:

PHP:
@mysql_query($query);

error_num = mysql_errno();

switch(error_num) {
  case 0: 
    echo 'Operazione eseguita correttamente';
    break;
  case 1062:
    echo '<tuo_messaggio_di_errore_chiave_duplicata>';
    break;
 default:
    echo 'Errore generico.';
}
 
Pardon, hai ragione. Deve essere $error_num in entrambe le ricorrenze.

PHP:
@mysql_query($query);

$error_num = mysql_errno();

switch($error_num) {
  case 0: 
    echo 'Operazione eseguita correttamente';
    break;
  case 1062:
    echo '<tuo_messaggio_di_errore_chiave_duplicata>';
    break;
 default:
    echo 'Errore generico.';
}

E' tutta colpa del dollaro debole! :hammer:
 

Discussioni simili