Après avoir écrit du code pendant 7 ans, c'est la première fois que je vois un petit bug aussi sanglant !

Je viens de corriger un bug dans notre plateforme d'assistant Yusmart AI, la fin est sanglante ! Dépêchez-vous et partagez-le avec tout le monde, et en passant, partagez les idées de bogue de dépannage standard.

La chose est comme ça, un petit partenaire a créé un assistant IA nommé [Software Developer] sur la plate-forme Yucongming ( www.yucongming.com ). Lorsque je recherche "développement logiciel", je peux trouver ce modèle :

Assistant intelligent d'IA de poisson

Par conséquent, lorsque vous recherchez "développeur de logiciel", qui est le nom complet de l'assistant, vous ne trouvez aucun résultat ? !

Assistant intelligent d'IA de poisson

Lorsque vous rencontrez ce genre de problème, commencez d'abord par le frontal : vérifiez d'abord si les paramètres de requête envoyés par le frontal sont corrects.

Appuyez sur F12 pour ouvrir la console réseau et constatez que le mot clé de recherche est passé sans aucun problème :

Ensuite, la peau de poisson grimpe à l'arrière le long du câble réseau.Tout d'abord, il est nécessaire de confirmer si les données les plus originales ont été trouvées dans la base de données, puis de déterminer si elles ont été filtrées par le code de l'entreprise.

Pour ouvrir le journal des requêtes de la base de données en local, le framework MyBatis Plus est utilisé, le code pour ouvrir le journal est le suivant :

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

Exécutez à nouveau la recherche et les enregistrements SQL imprimés sont comme indiqué dans la figure :

Mettez les paramètres dans le modèle d'instruction SQL, c'est-à-dire un nom comme '% développeur de logiciels%', il semble qu'il n'y ait pas de problème.

Vérifiez à nouveau, puis nous mettons le SQL cousu dans la console de base de données pour une vraie requête :

Le résultat de la requête de résultat est 0 :

Étrange, n'y a-t-il pas un tel enregistrement dans la base de données ? Mais pourquoi puis-je trouver cet assistant lorsque je recherche « développement de logiciels » ?

Ensuite, j'ai utilisé l'identifiant de l'assistant pour interroger la base de données et j'ai découvert qu'il existe effectivement des données nommées "développeur de logiciels".

Je suis en colère, pourquoi ne puis-je pas le savoir ? ! Vous pouvez également deviner.

En ce moment, j'ai une idée : est-ce parce que le nom stocké dans la base de données est incohérent avec le format de nom (ou les caractères) que nous voyons ? J'ai donc copié la valeur de name à partir de la base de données, comme indiqué sur la figure :

En conséquence, le nom copié de la base de données est utilisé comme condition de requête et le résultat peut être trouvé !

Il y a donc la capture d'écran magique suivante, deux instructions SQL "identiques", une avec des résultats et une sans résultats :

En gros, on peut confirmer que ce "développeur de logiciel" n'est pas l'autre "développeur de logiciel", et les deux chaînes sont incohérentes !

J'ai donc utilisé ces deux chaînes pour générer des codes de hachage MD5 et j'ai constaté que les codes de hachage étaient différents, indiquant que les chaînes d'origine étaient différentes.

Pour une comparaison plus précise, on constate que le mot « 人 » est différent :

Fosse! Qui peut voir la différence entre ces deux personnages "personnes" !

Quelle est la différence? Demandez à Yusmart AI~

En conséquence, l'affaire a été résolue en une seconde : il s'avère que la première "personne" est un personnage pleine chasse, ce qui est vraiment vrai. . . Les pantalons thaïlandais sont chauds!

C'est à peu près toute l'affaire. Par conséquent, ce que nous voyons n'est peut-être pas vrai. Ce bogue me rappelle de nombreux amis qui confondent souvent les virgules chinoises et anglaises et les deux-points chinois et anglais lorsqu'ils sont allés pour la première fois à l'université. Ce genre de bogue est vraiment ahurissant. J'espère que tous amis programmeurs, essayez de ne pas le rencontrer. Si vous le rencontrez, pensez à mon article, peut-être aurez-vous une solution.

Fish smart AI - soyez votre puissant assistant IA

Je suppose que tu aimes

Origine juejin.im/post/7240004799722340413
conseillé
Classement