J'ai un script PHP qui fonctionne toutes les 3 heures qui obtiennent les commandes Amazon MWS et la sauvegardez-la dans ma base de données.
Mais avant d'insérer une commande dans ma table, je vérifie d'abord si la commande existe p> < Pré> xxx pré>
mais parfois même si une commande existe, la requête reviendra 0. Si retour 0, je vais insérer la commande dans ma table et que cela finira par dupliquer les données. P> < P> Cet instance me arrive dans mes autres scripts PHP et je ne comprends pas le problème. P> p>
3 Réponses :
Vous devriez utiliser quelque chose appelé comme existe fort> pour vérifier si une ligne existe ou non dans votre ordre de cas. SELECT EXISTS(SELECT * FROM table1 WHERE ...);
SELECT EXISTS(SELECT * FROM tableName WHERE condition);
Si votre base de données utilise le mode maître-esclave, vous pouvez essayer de forcer le maître à interroger. p>
Vous pouvez également utiliser "INSERT Ignorer dans les commandes" "pour ignorer duplicata. P>
Vous pouvez avoir une erreur dans votre requête MySQL. J'ai créé une table d'essai et écrivez un certain code pour imprimer le résultat de la requête qui fonctionne correctement.
Vous n'utilisez peut-être pas correctement les citations car c'est l'erreur la plus du moment où vous travaillez avec des questions à PHP P> blockQuote>
voici le code p>
xxx pré> et: p>
image de la table où j'exécute la requête p>
la sortie sur la requête MySQL est la suivante: P>
2
Vous pouvez utiliser Remplacer au lieu d'insérer pour éviter la touche dupliquée, mais les données seront remplacées et transaction_id doit être la clé primaire. Peu importe si c'est la même chose. Vérifiez avant pourquoi sélectionner le retour 0. Essayez avec les transactions, vous avez un problème ici. Pouvez-vous fournir du code?
Faire un index unique contre
transaction_id code>Quelle sortie américaine de
show créer des commandes de table; code>?