Comment je peu réinterpreté une erreur sql en php [Résolu]

Signaler
Messages postés
30
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
26 juillet 2007
-
Messages postés
30
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
26 juillet 2007
-
Bonjour à tous

Je voudrais récupéré une erreur sql en php car l'erreur qui se crait est



Duplicata du champ 'test2' pour la clef 2



Elle est du a un meme nom dans la base donc j'aimerais que j'ai une phrase plus compréhensible pour tous.

voici mes codes



j'ai ajouté ceci avant l'execution de ma commande sql

//Verification du nom

$sql = "select * from nonbase";

$result = $db->query($sql);

if (DB::isError($result))

{

die ($result->getMessage('"Il existe deja dans la base"'));

}



Mais cela marche pas es ce que quelqu'un peu me dire se qui cloche



suite de mon code



//création de la requête SQL:



$sql = " INSERT INTO produit VALUES ('','" . $_POST['nom']
. "','" . $_POST['test'] . "','" . $_POST['commentaires'] . "')";



//exécution de la requête SQL:

$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;





merci a tous

6 réponses

Messages postés
30
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
26 juillet 2007

voila c'est bon j'ai trouvé j'ai fais ca



else {

if (mysql_errno($cnx) == 1062){



echo ("Le nom existe déja.");

lol que de perde de temps pour un si petit problème ;(



merci



Heu j'abuse peut etre mais je cherche un composant php table du genre sur ca:



http://exorsus.net/software/table_class/test_complete.php



car celui la ne fonctionne pas



Merci
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Parce que c'est dans ta classe SQL que tu dois gérer l'erreur, pas dans ton script qui veut l'utiliser.



Exemple : http://www.phpcs.com/code.aspx?ID=33135
Messages postés
30
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
26 juillet 2007

Euh je comprends pas tout donc c'est dans ma base qu'il faut que je modifie cela ou pas ?
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Nan, c'est dans ton script de classe PHP !

La classe qui est instanciée par $db !

<?php

if (DB::isError($result))

{

die ($result->getMessage('"Il existe deja dans la base"'));

}

?>

Cette vérification doit se faire TOUT SEUL à chaque query :) Pas besoin de code supplémentaire pour ca dans un script annexe !

Autrement, tu perds toute capacité à ta classe !
Messages postés
30
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
26 juillet 2007

Ok merci je vais tester ca ;p je te redis si cela fonctionne, merci
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Normalement ca devrait, regarde sur ma class. La gestion d'erreur se
fait tout seul (bien qu'un peu compliqué je dois dire :) ). Il est plus
facile de faire la gestion d'erreur directement après un appel de
fonction, plutôt que de rappeler une autre fonction qui va vérifier si
tout c'est bien passé (perte de temps et de ressources inutiles !).