0
votes

Mysql select parfois n'a rien trouvé même même s'il existe

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 < Pré> xxx

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> Cet instance me arrive dans mes autres scripts PHP et je ne comprends pas le problème.


3 commentaires

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


Quelle sortie américaine de show créer des commandes de table; ?


3 Réponses :


0
votes

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);


0 commentaires

0
votes

Si votre base de données utilise le mode maître-esclave, vous pouvez essayer de forcer le maître à interroger.

Vous pouvez également utiliser "INSERT Ignorer dans les commandes" "pour ignorer duplicata.


0 commentaires

0
votes

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


0 commentaires