Supposons que vous ayez une table "Store" avec une colonne "domaine" qui est unique. Ajouter une entrée en double va générer des erreurs telles que:
Erreur fatale: Wrong SQL: INSERT INTO store
(name
, domain
, alias
, comment
) VALEURS ("Flipkart", "www.flipkart.com", "NA", "Bon magasin") Erreur: Entrée en double "www.flipkart.com-" pour la clé "domaine" dans C: Fichiers de programme (x86) EasyPHP-DevServer-14.1VC11datalocalwebprojectsMyProjStore.php en ligne 21
Mais, pour un utilisateur ordinaire, je veux simplement l'afficher comme suit:
Entrée en double détectée. Réessayer..!
Une solution consiste à rechercher d'abord les doublons par programmation. Et essayez ensuite de l'insérer uniquement si cette entrée n'est pas trouvée dans la table.
Mais, y a-t-il un moyen de le faire plus facilement (sans faire de requête SQL supplémentaire)?
Réponses:
2 pour la réponse № 1Vérifier mysql_errno
ou mysqli_errno
et voir si le code d'erreur est 1062 ou MYSQL_CODE_DUPLICATE_KEY
ainsi:
if(mysqli_errno($connection) == 1062)
{
//The query failed due to duplicate keys.
}
Supprimez ensuite l'avertissement sur votre serveur de production.
0 pour la réponse № 2
MySQL renvoie une erreur sous la forme d'un nombre, d'un état et d'un message.
Donc, vous devez attraper le numéro de code d'erreur et ensuite l'utiliser comme ceci:
if(mysqli_errno($db_connection)==1062){
echo "Duplicate Entry Detected. Try Again..!";
}