Codeigniterのコントローラーで次のクエリを使用しています。
$u -> where('us_email_id', $username);
$u -> where('us_password', $password1);
$details = $u -> get();
$total = count($details);
echo $total; echo "<br>";
echo count($details);
上記のコードでは、「$ u」はデータマッパー「User」のクラス「User」のオブジェクト名であり、データベースのテーブル名は「users」です。クエリの実行後に返される行数を確認したい。 「$ total」は、ユーザーIDとパスワードが一致していなくても、常に1を表示します。私が欲しいのは、行数が1を返した場合は「OK」、それ以外の場合は「何か問題がある」です。私はその基本を知っていますが、誰かがそれを知っているなら、私を助けてください。前もって感謝します。
見つかった行の総数をカウントしたいだけの場合は、count()
の代わりにget()
メソッドを呼び出します。
_$u->where('us_email_id', $username);
$u->where('us_password', $password1);
$total = $u->count();
_
ただし、データも必要な場合は、get()
を呼び出すだけで、その後PHP count()
オブジェクトのall
プロパティ内にある要素の数をカウントします。
_$u->where('us_email_id', $username);
$u->where('us_password', $password1);
$u->get();
$total = count($u->all);
_
詳細については、ドキュメントを確認してください。
以下はCIのavailabです-このページをチェックアウトしてください- http://codeigniter.com/user_guide/database/results.html
$query->num_rows()
クエリによって返された行の数。注:この例では、$ queryは、クエリ結果オブジェクトが割り当てられる変数です。
$query = $this->db->query('SELECT * FROM my_table');
echo $query->num_rows();
上記の例では、試してみる必要があります
$details->num_rows();
パスワードが暗号化されている場合は、再試行してください
または、すべてのデータ部分に問題がない場合は、次のコードを使用してみてください
$this->db->where(array('us_email_id' => $username,'us_password' => $password1));
echo $this->db->count_all_results('users');