ホームページ >データベース >mysql チュートリアル >数値変換を防止して MySQL クエリでの誤った一致を回避する方法
mySQL では、SELECT * FROM table WHERE email=0 のようなクエリは、'0 がないにもかかわらず、予期せずすべての行を返します。 ' テーブルの電子メールフィールドの値。これは、電子メール フィールド (通常は varchar 型) が整数への自動変換を受けるために発生します。
varchar フィールドは数字以外の文字を収容できるため、有効な整数表現が欠けている電子メール文字列はデフォルトで 0 になります。この変換により、誤った一致や潜在的なセキュリティ脆弱性が発生する可能性があります。
クエリを変更せずにこの問題を回避するには、文字列フィールドが文字列値とのみ比較されるようにすることが重要です。このような比較の正しいクエリ形式は次のとおりです。
<code class="sql">SELECT * FROM table WHERE email='0';</code>
比較値を一重引用符 (' ') で囲むことにより、電子メール フィールドは文字列のままとなり、数値変換が防止され、正確な一致が保証されます。
以上が数値変換を防止して MySQL クエリでの誤った一致を回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。