/ / Comment simplifier l'erreur MySQL avant de l'afficher en PHP? - php, mysql

Comment simplifier l'erreur MySQL avant de l'afficher en PHP? - php, mysql

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 № 1

Vé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..!";
}