Gestion de l'erreur d'entrée en double dans PHP pour MySQL
Lors de l'insertion de données dans une base de données MySQL à l'aide de PHP, il est possible de rencontrer une erreur d'entrée en double si la valeur de la clé primaire existe déjà. Le message d'erreur par défaut renvoyé n'est pas convivial, ce qui rend difficile l'information de l'utilisateur sur le problème.
Pour résoudre ce problème, PHP fournit un moyen de vérifier les erreurs MySQL spécifiques et de les gérer en conséquence. La première étape consiste à identifier le code d'erreur pour les entrées en double. Dans ce cas, le code est 1062.
Une fois que vous avez le code d'erreur, vous pouvez l'utiliser pour vérifier si l'exécution de la requête a déclenché cette erreur particulière :
$result = mysqli_query($conn, 'INSERT INTO ...'); if (mysqli_errno($conn) == 1062) { echo 'Please enter a different value.'; }
Dans ce code, $conn est l'objet de connexion MySQL. En comparant mysqli_errno($conn) avec le code d'erreur de clé en double (1062), nous pouvons déterminer si l'erreur s'est produite. Si tel est le cas, nous affichons un message personnalisé à l'utilisateur.
Bon style de programmation
C'est une bonne pratique d'éviter d'utiliser des nombres magiques dans le code, en particulier les codes d'erreur. L'attribution d'une constante au code d'erreur (par exemple, MYSQLI_CODE_DUPLICATE_KEY) rendra votre code plus facile à lire et à maintenir.
Par exemple :
define('MYSQLI_CODE_DUPLICATE_KEY', 1062); $result = mysqli_query($conn, 'INSERT INTO ...'); if (mysqli_errno($conn) == MYSQLI_CODE_DUPLICATE_KEY) { echo 'Please enter a different value.'; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!