2011-03-25 12 views
1

私はテスト/学習目的で単純な電子メール検証を行っていますが、何が間違っているのか分かりません。ここに問題があります:php mysqli if文

クエリが動作します..私のテーブル内のフィールドを更新しますが、アクティブな場合は0にする必要があります。だから、基本的には、active = 1であっても依然として "成功"をエコーし​​ます。なぜなら、WHERE active = 0を捕まえることになっているからです。これは意味がありますか?ここをクリックしてください

+0

よく分からない質問 – Neal

+0

これは有効なSQL文であり、常にtrueを返します – Neal

+0

ああ、私は結果が見つかった場合にのみ真実であると推測していたようです。どうすればいい? – Chris

答えて

3

クエリはすべての行に影響を与えていない場合でもクエリが正常に実行されたため、クエリはtrueを返します。クエリが無効な場合はfalseを返すだけです。影響を受ける行の数を調べる必要があります。 (mysql_num_rows($query)など)

また、クエリに$ _GETまたは$ _POSTの値を使用してMySQL注入を防止する場合は、mysql_real_escape_string($getvalue)を使用する必要があります。

+0

ありがとうございます。 mysql_num_rows($ query)に相当するmysqliはありますか? – Chris

+0

はい。クエリの実行後に '$ connection-> affected_rows'を呼び出して行の量を取得してください。詳細はhttp://php.net/manual/en/mysqli.affected-rows.phpを参照してください。 – tvkanters

+0

ありがとう、私はそれを感謝します。 – Chris