PDO を使用したデータベース内の行の照合: 問題のトラブルシューティング
PDO を使用してデータベース内の重複行をチェックしようとすると、次のようなシナリオが発生する可能性があります。結果が期待と異なる場合。考慮すべき潜在的な問題と解決策は次のとおりです。
SQL エラーによって引き起こされる問題
クエリがエラーなく実行されていることを確認します。 PDO は、一致するものが存在しない場合でも、結果カウントとして「0」を返すことがあります。これは、クエリの問題を示しています。
条件によって引き起こされる問題
クエリ条件を確認してください。独占性。 「WHEREcol=1 ANDcol=2」などの条件は常に「0」を返します。問題を切り分けるための条件を簡素化します。
データによって引き起こされる問題
デバッグのヒント
問題と解決策の例
クエリには次の文字列が含まれています「SELECT count(*) FROM inbox WHERE ... AND from_email = "abc Offers <[email protected]>」などの HTML エンティティ。 phpMyAdmin で実行すると、このクエリは機能しますが、PDO 経由で「0」を返します。 HTML エンティティ (エンティティに変換された「<」および「>」) が不一致の原因となります。クエリを変更してこれらのエンティティを削除すると、問題が解決します:
$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();
以上が一致するものが存在する場合でも、PDO データベースの行一致クエリがゼロを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。