我在foreach循環中有一個SQL查詢。有時可能會有很多,我的意思是要做很多查詢,具體取決於多個標準,最多可能有78個查詢。優化此SQL查詢
現在,我知道過早優化是所有邪惡的根本原因,但我不想看到78個查詢 - 這只是不健康。
下面的代碼:
$crumbs = explode(",", $user['data']['depts']);
foreach ($crumbs as &$value) {
$data = $db->query("SELECT id FROM tbl_depts WHERE id = '" . $value . "'");
$crumb = $data->fetch_assoc();
$dsn = $db->query("SELECT msg, datetime FROM tbl_motd WHERE deptid = '" . $value . "'");
$motd = $dsn->fetch_assoc();
if ($motd['msg'] != "") {
<?php echo $motd['msg']; ?>
}
}
我可以使它更好嗎?
除了下面的優化之外,您可能還想考慮將其設置爲存儲過程,而不是直接選擇以提高性能。 – nickytonline
請注意,此代碼易受SQL注入攻擊。 –
你好Daniel,爲什麼會這樣?數據只是獲得一個數組,在投入之前已經過數據處理。在此代碼之前,Aldo,$ user ['data']及其子代也將被清理。 – bear