En PHP, lors de l'insertion d'un lot d'enregistrements dans une base de données avec un champ unique, il est souhaitable d'ignorer les erreurs de saisie en double. Au lieu de cela, vous voulez vous assurer que seuls les nouveaux enregistrements sont insérés sans aucune interruption.
Exécuter une requête SELECT pour vérifier les entrées existantes avant l'insertion n'est pas une approche efficace. Voici des méthodes alternatives utilisant la fonctionnalité intégrée de MySQL :
INSERT... IGNORE :
Cette syntaxe vous permet d'insérer un enregistrement et ignorez-le si un doublon existe déjà. Aucune erreur ne sera générée.
INSERT IGNORE INTO tbl (field1, field2, ...) VALUES (...);
REPLACE INTO :
Cette syntaxe écrase un enregistrement existant par le nouveau si la clé primaire matchs. Une erreur sera générée si la clé primaire n'est pas unique.
REPLACE INTO tbl (field1, field2, ...) VALUES (...);
INSÉRER... LORS DE LA MISE À JOUR DE LA CLÉ EN DUPLICATE :
Ceci La syntaxe insère un nouvel enregistrement ou effectue une mise à jour si une clé primaire en double est trouvé.
INSERT INTO tbl (field1, field2, ...) VALUES (...) ON DUPLICATE KEY UPDATE field2 = NEW.field2;
En supposant une table nommée 'tbl' avec les colonnes 'id' et 'value', contenant initialement un enregistrement avec 'id' = 1 et 'valeur' = 1 :
REMPLACER INTO :
REPLACE INTO tbl (id, value) VALUES (1, 50);
Résultat : écrase l'enregistrement existant avec 'value' = 50.
INSÉRER IGNORE :
INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
Résultat : ignore déjà l'entrée en double puisque 'id' 1 existe.
INSÉRER... SUR LA MISE À JOUR DE LA CLÉ EN DUPLICATE :
INSERT INTO tbl (id, value) VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;
Résultat : met à jour l'enregistrement existant avec « valeur » = 200 puisque 'id' 1 existe déjà.
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!