0){echo "重複した番号があります";echo &q"/> 0){echo "重複した番号があります";echo &q">

ホームページ  >  記事  >  バックエンド開発  >  ユーザーデータの重複です、お兄さん、$result の理解が間違っていましたか?

ユーザーデータの重複です、お兄さん、$result の理解が間違っていましたか?

WBOY
WBOYオリジナル
2016-06-13 13:20:18843ブラウズ

ユーザーデータの重複ですが、$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 ステートメントが正常に実行されたかどうかのみを示すことができます。これに基づいている場合、上の階のメソッドは機能しますが、他の挿入または更新ステートメントの場合は機能しません。 「クエリは正常に実行されましたが、行に影響を与えず、行を返さなかった可能性が非常に高くなります。」

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。