我試圖實際上循環一個函數與不同的函數參數,每次由函數本身獲得;PHP調用自己的結果,如果isset
我使用變量$login_name
作爲函數參數,它是由表單提交的。所以我想通過函數本身來改變這個參數。荒誕?有沒有其他的選擇?
這裏是我的功能
$login_name = "U00001";
while (!isset($end)) {
function getcount($login_name) {
$get_node = mysql_query("SELECT * FROM b_userbase WHERE login_name='$login_name'");
while ($row_node = mysql_fetch_array($get_node)) {
$node = $row_node["user_node"];
$placement = $row_node["user_placement"];
}
$current_count = mysql_query("SELECT * FROM f_user_matching WHERE u_m_mem='$placement'");
while ($get_count = mysql_fetch_array($current_count)) {
$get_left_current = $get_count["u_m_left_current"];
$get_left_total = $get_count["u_m_left_total"];
$get_right_current = $get_count["u_m_right_current"];
$get_right_total = $get_count["u_m_right_total"];
$update_left_current = $get_left_current + 1;
$update_right_current = $get_right_current + 1;
$update_left_total = $get_left_total + 1;
$update_right_total = $get_right_total + 1;
}
if ($node == "L") {
$increase_qry = mysql_query("UPDATE f_user_matching
SET u_m_left_current= '{$update_left_current}',
u_m_left_total ='{$update_left_total}'
WHERE u_m_mem ='{$placement}' ");
}
if ($node == "R") {
$increase_qry = mysql_query("UPDATE f_user_matching
SET u_m_right_current= '{$update_right_current}',
u_m_right_total ='{$update_right_total}'
WHERE u_m_mem ='{$placement}' ");
}
$login_name = $placement;
if ($login_name == "IM000001") {
$end = 1;
} else {
$login_name = $placement;
}
global $login_name;
}
$count = getcount($login_name);
}
問題出在哪裏?
[示例代碼](http://sscce.org/)應該是完整和簡潔的 - 僅僅足以說明問題並獨立存在,但不能更多。無關的代碼是一個分心。舊的mysql擴展已過時,正在棄用。新代碼應該使用PDO或mysqli擴展,它們都支持預處理語句。準備好的語句參數不容易被注入。準備好的語句本身對重複查詢更具性能,因爲語句只需要解析一次。 – outis