Moodle関数を使用してクエリの行数を取得しようとしています。moodleのsqlクエリからカウントを取得
これは私がこれまでにやっていることです:
$records = $DB->get_records_sql("select * from {user} where maildigest=$login_id");
はどのような結果の数を得るのですか?
Moodle関数を使用してクエリの行数を取得しようとしています。moodleのsqlクエリからカウントを取得
これは私がこれまでにやっていることです:
$records = $DB->get_records_sql("select * from {user} where maildigest=$login_id");
はどのような結果の数を得るのですか?
get_records_sql()は配列を再帰的に実行するので、レコード数を取得するにはcount()
を使用してください。
は以下のようでください: - あなたが参照する必要が
$records=$DB->get_records_sql("select * from {user} where maildigest=$login_id");
echo (count($records));
リンクセクション: - https://prnt.sc/gpggq4
SQLステートメントに任意の値を挿入することをお勧めしません。SQLインジェクション攻撃を求めています。 Aldo Paradisoの答えが正しい解決策です。 – davosmith
@ davosmith彼のコードは私のものと同じくらい脆弱であるので、私はそうは思わない。 'array( 'maildigest' => $ login_id)'は '防止'を保証しません。 BTWは問題ありません。きれいにし、すべてのparamは単にここに示すように、文字列の挿入を使用して、その方法を追加エスケープしますMoodleのDB機能は、悪質なSQL –
はい、それは、@AlivetoDie HIIは – davosmith
あなたはレコードをカウントするMoodleの特定の機能を使用することができますあなたの場合は
$DB->count_records($table);
をあなたは使用できます:
echo $DB->count_records('user', array('maildigest'=>$login_id));
この機能は、効率を向上させるために設計されています。検索したレコードを数えたい場合は、一括してデータを取得する必要はありません。
'count(*)' Mysql関数を試しましたか? –
このメソッドは配列を返すので、配列の要素を 'count'するだけです... – CBroe