Correspondance des lignes dans la base de données avec PDO : problèmes de dépannage
Lorsque vous essayez de vérifier les lignes en double dans une base de données à l'aide de PDO, vous pouvez rencontrer des scénarios où les résultats diffèrent de vos attentes. Voici les problèmes potentiels et les solutions à prendre en compte :
Problèmes causés par des erreurs SQL
Confirmez que votre requête s'exécute sans erreur. PDO peut renvoyer « 0 » comme nombre de résultats même s'il n'y a aucune correspondance, indiquant un problème de requête.
Problèmes causés par la condition
Vérifiez les conditions de votre requête pour exclusivité. Des conditions telles que « WHERE col=1 AND col=2 » renverront toujours « 0 ». Simplifiez les conditions pour isoler le problème.
Problèmes causés par les données
Conseils de débogage
Exemple de problème et de résolution
Votre requête inclut une chaîne avec des entités HTML, telles que comme "SELECT count(*) FROM inbox WHERE ... AND from_email = "abc Offers <[email protected]>"". Lorsqu'elle est exécutée dans phpMyAdmin, cette requête fonctionne, mais renvoie « 0 » via PDO. Les entités HTML ("<" et ">" converties en entités) provoquent l'incompatibilité. La modification de la requête pour supprimer ces entités résout le problème :
$sql = 'SELECT count(*) FROM inbox WHERE uid = ? AND from_email = "abc Offers [email protected]"'; $result = $link->prepare($sql); $result->execute([$email_number,$email_f]); $number_of_rows = $result->fetchColumn();
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!