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

sense 30 Messages postés jeudi 13 mai 2004Date d'inscription 26 juillet 2007 Dernière intervention - 12 oct. 2005 à 18:02 - Dernière réponse : sense 30 Messages postés jeudi 13 mai 2004Date d'inscription 26 juillet 2007 Dernière intervention
- 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
Afficher la suite 

6 réponses

Répondre au sujet
sense 30 Messages postés jeudi 13 mai 2004Date d'inscription 26 juillet 2007 Dernière intervention - 13 oct. 2005 à 17:46
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de sense
FhX 2368 Messages postés mercredi 13 octobre 2004Date d'inscription 18 avril 2015 Dernière intervention - 12 oct. 2005 à 19:19
0
Utile
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
Commenter la réponse de FhX
sense 30 Messages postés jeudi 13 mai 2004Date d'inscription 26 juillet 2007 Dernière intervention - 12 oct. 2005 à 20:41
0
Utile
Euh je comprends pas tout donc c'est dans ma base qu'il faut que je modifie cela ou pas ?
Commenter la réponse de sense
FhX 2368 Messages postés mercredi 13 octobre 2004Date d'inscription 18 avril 2015 Dernière intervention - 12 oct. 2005 à 22:50
0
Utile
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 !
Commenter la réponse de FhX
sense 30 Messages postés jeudi 13 mai 2004Date d'inscription 26 juillet 2007 Dernière intervention - 13 oct. 2005 à 08:22
0
Utile
Ok merci je vais tester ca ;p je te redis si cela fonctionne, merci
Commenter la réponse de sense
FhX 2368 Messages postés mercredi 13 octobre 2004Date d'inscription 18 avril 2015 Dernière intervention - 13 oct. 2005 à 11:43
0
Utile
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 !).
Commenter la réponse de FhX

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.