我想從關聯的 idnr 計算表中的 nums 數。但是,我收到以下錯誤訊息: 致命錯誤:未捕獲的 MeekroDBException:如果使用命名引數,則必須傳遞引數的 assoc 陣列!
該表如下所示:
--------- --------- -----------------------
| idnr | nums | timestamp |
--------- --------- -----------------------
| 1234 | 75 | 2021-10-19 11:59:22 |
| 1234 | 73 | 2021-11-09 11:59:22 |
| 1234 | 43 | 2020-07-19 12:59:22 |
| 4565 | 31 | 2021-11-19 13:59:22 |
--------- --------- -----------------------
SQL 字串:
$results = DB::query("SELECT COUNT(nums) FROM tablename WHERE idnr = %i_idnr", '1234');
我想展示它:
echo $results['nums']; // the result should be 148
非常感謝 ;)
uj5u.com熱心網友回復:
好吧,你的錯誤描述了自己。
來自MeekroDB 檔案:
您可以傳遞一組命名引數并按名稱訪問它們。
示例代碼:
DB::query("SELECT * FROM tbl WHERE name=%s_name AND age > %i_age AND height <= %d_height",
[
'name' => $name,
'age' => 15,
'height' => 13.75
]
);
所以在你的情況下,它將是:
$results = DB:: queryFirstRow(
"SELECT SUM(nums) as nums_sum FROM tablename WHERE idnr = %i_idnr",
['idnr' => '1234']
);
echo $results['nums_sum'];
還有一些注意事項:
- 你應該使用 SUM(),否則你只會計算行數
- 由于它是一個總是回傳單行的聚合查詢,因此使用 queryFirstRow 而不是 query
- 你應該為 SUM(nums) 定義一個別名,這樣從結果陣列中檢索資料會更容易。
uj5u.com熱心網友回復:
我需要更改什么才能只獲得 2020 年的參賽作品?
$results = DB:: queryFirstRow(
"SELECT SUM(nums) as nums_sum FROM tablename WHERE idnr = %i_idnr AND YEAR(timestamp) = %t_yearnr",
['idnr' => '1234', 'yearnr' => 2020]
);
我只得到了反饋“MeekroDB 類中的 U 定義變數 $str”
已解決:僅將 %t 更改為 %s
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383438.html
上一篇:更新并附加到特定列中的所有專案
下一篇:顯示陣列中帶有id的專案
