2017-09-25 116 views
3

我試圖讀取的行數爲使用的Moodle功能的查詢。獲取從SQL查詢計數的Moodle

這是我迄今所做的:

$records = $DB->get_records_sql("select * from {user} where maildigest=$login_id"); 

如何獲得結果的數量?

+0

您是否嘗試過使用計數(*)Mysql函數? –

+0

這個方法返回一個數組,因此,所有你需要的就是'count'數組中的元素...... – CBroe

回答

0

get_records_sql() retruns一個數組,所以使用count()獲得的記錄數。

做象下面這樣: -

$records=$DB->get_records_sql("select * from {user} where maildigest=$login_id"); 

echo (count($records)); 

鏈接部分,你必須是指: - https://prnt.sc/gpggq4

+0

我不會建議涉及插入任意值到這樣的SQL語句的任何解決方案 - 你所要求的SQL注入攻擊。 Aldo Paradiso的答案是正確的解決方案。 – davosmith

+0

@davosmith我不這麼認爲,因爲他的代碼和我一樣脆弱。 'array('maildigest'=> $ login_id)'不能保證'預防'。順便說一句沒有問題。由於 –

+0

是的,它會作爲Moodle的數據庫功能,將清理和逃生每PARAM補充說,這樣,只需使用如下所示的字符串插入留下您打開惡意SQL – davosmith

1

您可以使用Moodle的特定功能來計算記錄:

$DB->count_records($table); 

你的情況你可以使用:

echo $DB->count_records('user', array('maildigest'=>$login_id)); 

此功能旨在提高效率:如果您只需要計算檢索的記錄,則無需檢索大量數據;-)