ユーザーデータの重複ですが、$result を誤解していますか?
$sql1="select * from user where mencode='$mencode'";
$result1=mysql_query($sql1,$con);
if(count($result1)>0){
echo "重複した番号";
echo "
";
echo count(null);
echo "
";
echo count($result1) ; //これは 1 に等しいですか? ?
}
else{
//データベースに挿入されたステートメントを登録します
}
この $reuslt1 は空のセットを返すはずです。なぜ出力 count($reslut1) の値なのでしょうか。 ) 1?
この方法に何か問題がありますか? どうやって解決すればいいでしょうか? 答えてください、ありがとうございます
-----解決策---------
if( mysql_num_rows ($result1) > 1) {
注:
$result1 は、配列でない限り、count($result1) の結果は 1
$ です。 result1 = mysql_query( $sql1,$con); $result1 の後にはリソースがあります。簡単に言うと、結果セット
のポインタです。
------解決策---------
直接 if($result1) {
------解決策----------------------
php Manual::mysql_query() SELECT のみ、SHOW、EXPLAIN、または DESCRIBE ステートメントはリソース識別子を返すか、クエリが正しく実行されなかった場合は FALSE を返します。他のタイプの SQL ステートメントの場合、mysql_query() は成功時に TRUE を返し、エラー時に FALSE を返します。 FALSE 以外の戻り値は、クエリが有効であり、サーバーによって実行できることを意味します。これは、影響を受ける行数または返される行数については何も示しません。 クエリが正常に実行されたものの、行に影響を与えなかったり、行が返されなかったりする可能性があります。
つまり、SQL ステートメントが正常に実行されたかどうかのみを示すことができます。これに基づいている場合、上の階のメソッドは機能しますが、他の挿入または更新ステートメントの場合は機能しません。 「クエリは正常に実行されましたが、行に影響を与えず、行を返さなかった可能性が非常に高くなります。」