所以我只是想知道這是否是一種好的做法,或者由於某種原因,這種類型的代碼會影響系統的速度和功能?準備語句內部while循環生成的準備語句
$foo = "bar";
$stmt = $db->prepare('SELECT * FROM table WHERE bar=?');
$stmt->bind_param('s',$foo);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()){
$val1 = $row['val1'];
$val2 = $row['val2'];
echo "<section>";
$stmt2 = $db->prepare('SELECT * FROM table2 WHERE bar=?');
$stmt2->bind_param('s',$foo);
$stmt2->execute();
$result2 = $stmt2->get_result();
while($row = $result2->fetch_assoc()){
$val1 = $row['val1'];
$val2 = $row['val2'];
}
$stmt->close();
echo "</section>";
}
$stmt->close();
的第一條語句可以產生50點或更多的數據,這意味着另外50個以上的語句會產生,這是壞?感謝您的答案。
循環內的數據庫查詢幾乎不是一個好主意。您應該嘗試使用一個查詢來獲取所需的所有數據 - 查看JOIN。 – CBroe 2014-09-01 08:12:21