我一直在問我的同事做出PHP功能插到我們的Web應用程序來處理嵌套(環形)查詢無限量,使我們的生活更容易PHP函數而不用擔心失去當前和/或以前的結果。處理MySQL的無限和嵌套查詢
這裏是我分鐘後上來的代碼,它似乎工作得很好,但我仍然有一些問題:
- 我是重新發明mysqli_prepare功能?
- 以這種方式處理這些嵌套查詢是否聰明?
- 使用以下方法有什麼優點和缺點?
實際的功能:
function qn($query) {
global $db;
$rand_var = 'r' . mktime() . mt_rand();
$$rand_var = $db->query($query);
return $$rand_var;
}
,並在行動:
if (($db instanceof mysqli) != true) {
$db = new mysqli(DB_ADDRESS, DB_USER, DB_PASS, DB_NAME);
}
$a = qn('SELECT DISTINCT ***');
while ($row_a = $a->fetch_assoc()) {
// do some stuff
$b = qn('SELECT ***' . $row_a['foo']);
while ($row_b = $b->fetch_assoc()) {
$c = qn('SELECT COUNT(id)' . $row_b['bar']);
// keep going ...
}
}
注: SQL查詢樣品。
必須說:如果你甚至需要一個「處理嵌套查詢的解決方案」,那麼你的數據模型中可能會有更嚴重的問題。 – 2013-02-25 13:16:43
遞歸是答案。 – 2013-02-25 13:17:48
爲什麼不只是'return $ db-> query($ query);'?哪個首先分配給具有唯一名稱的局部變量? – 2013-02-25 13:17:51