2010-12-12 37 views
2

Dans mon code php/MySQL, j'insère un nouvel enregistrement dans une table (InnoDB) qui contient de nombreuses clés de colonne UNIQUE. Si l'insertion échoue (avec ER_DUP_ENTRY), a besoin de pour savoir quelle valeur de la colonne n'était pas unique.parse mysql erreur msg - est-ce la bonne façon?

On m'a dit que pour y parvenir, vous devez extraire la valeur de% d du message d'erreur que vous obtenez: "Entrée en double '% s' pour la clé% d".

Cela devrait fonctionner mais je n'aime pas la solution. Parsing/regex correspondant à une chaîne donne une complexité inutile à une tâche simple que j'essaie toujours d'éviter. Maintenant, la question: est-ce la bonne voie à suivre? N'y a-t-il pas une meilleure solution?

Répondre

0

Il est probablement possible de ne pas obtenir seulement le message d'erreur mais aussi le code d'erreur correspondant. Voir par exemple le results for PHP functions containing errno.

+0

Je voulais dire un message d'erreur et non un code d'erreur. J'ai changé de sujet. – spajak

+0

@spajak: Je suppose qu'il n'y a pas d'autre moyen de le faire. Mais vous pouvez essayer 'sscanf' comme l'inverse de' sprintf'. – Gumbo