Comment je peu réinterpreté une erreur sql en php

Résolu
sense Messages postés 30 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 26 juillet 2007 - 12 oct. 2005 à 18:02
sense Messages postés 30 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 26 juillet 2007 - 13 oct. 2005 à 17:46
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

sense Messages postés 30 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 26 juillet 2007
13 oct. 2005 à 17:46
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
3
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
12 oct. 2005 à 19:19
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
0
sense Messages postés 30 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 26 juillet 2007
12 oct. 2005 à 20:41
Euh je comprends pas tout donc c'est dans ma base qu'il faut que je modifie cela ou pas ?
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
12 oct. 2005 à 22:50
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sense Messages postés 30 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 26 juillet 2007
13 oct. 2005 à 08:22
Ok merci je vais tester ca ;p je te redis si cela fonctionne, merci
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
13 oct. 2005 à 11:43
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 !).
0
Rejoignez-nous