如何升级php数据中的名称

如何升级php数据中的名称,php,Php,我在一家传销公司的网站上工作,在那里我需要设计一个升级,在添加5个成员后,成员的状态从一步升级到更高。每个成员都必须升级到更高级别。我有一些代码,但我不知道如何调用此功能 这是我的密码:- function CheckAndUpgradeDesignation($username,$des) { if($des=='Crown') return; $q="SELECT introducer_id FROM members WHERE user_id='$usern

我在一家传销公司的网站上工作,在那里我需要设计一个升级,在添加5个成员后,成员的状态从一步升级到更高。每个成员都必须升级到更高级别。我有一些代码,但我不知道如何调用此功能

这是我的密码:-

function CheckAndUpgradeDesignation($username,$des)
    {
    if($des=='Crown')
    return;
    $q="SELECT introducer_id FROM members WHERE user_id='$username'";
    $rs=mysql_query($q);
    $r=mysql_fetch_array($rs);
    $id=$r['introducer_id'];
    $q="SELECT count(*) as total from members WHERE introducer_id='$id' AND designation='$des'";
        $rs1=mysql_query($q);
    $r1=mysql_fetch_array($rs1);
    $t=$r1['total'];
    if($t==5)
    {
    if($des=="VIP")
       $des1="Journey";
       else
        if($des=="Journey")
       $des1="Executive";
       else
        if($des=="Executive")
       $des1="DreamFlight";
       else
        if($des=="DreamFlight")
       $des1="Safari";
       else
        if($des=="Safari")
       $des1="GoldRace";
       else
        if($des=="GoldRace")
       $des1="RoyalRace";
       else
        if($des=="RoyalRace")
       $des1="Aashiyana";
       else
        if($des=="Aashiyana")
       $des1="Crown";
       $q="UPDATE members SET designation='$des1' WHERE user_id='$id'";
       mysql_query($q);
       CheckAndUpgradeDesignation($id,$des1);
       }
}

请检查任何人该代码是否正确或是否需要更改…………如果您有问题,请询问我:
CheckAndUpgradeDesignation('1','GoldRace')

您还可以将函数参数
$username
重命名为
$userid
,因为SQL使用
用户id

请正确转义插入SQL语句中的值,以避免注入

可以将函数重构为3个函数:

  • fetchDesignation($user\u id)-返回用户id的指定
  • raiseDesignation($des)-这是升级并返回新级别或false的逻辑部分
  • updateDesignation($user_id,$des)-将新级别插入数据库
  • 这个建议有点灵活,但它取决于用例。
    它允许在单独的单元测试中测试raiseDesignation()的逻辑,而无需接触数据库。另外,获取用户id的名称现在是分开的。

    我可以重构代码,将一些重要任务分开。另一方面,我建议您不要试图编写包含大量代码的大型函数,因为这不容易理解

     <?php
    
    function CheckAndUpgradeDesignation($userId, $designation)
    {
        if ($designation == 'Crown') {
            return;
        }
    
        $introducerId = GetIntroducerIdByUserId($userId);
        $memberTotal = GetTotalOfMembersByIntroducerIdAndDesignationId($introducerId, $designation);
    
        if ($memberTotal == 5) {
            $designationValue = VerifyDesignation($designation);
            UpdateDesignation($designationValue, $introducerId);
            CheckAndUpgradeDesignation($introducerId, $designationValue);
        }
    }
    
    function VerifyDesignation($designation)
    {
        $designationList = array(
            'VIP' => 'Journey',
            'Journey' => 'Executive',
            'Executive' => 'DreamFlight',
            'DreamFlight' => 'Safari',
            'Safari' => 'GoldRace',
            'GoldRace' => 'RoyalRace',
            'RoyalRace' => 'Aashiyana',
            'Aashiyana' => 'Crown'
        );
    
        if (key_exists($designation, $designationList)) {
            return $designationList[$designation];
        }
    
        return null;
    }
    
    function GetIntroducerIdByUserId($id)
    {
        $query = "SELECT introducer_id FROM members WHERE user_id='$id'";
        $result = mysql_query($query);
        $response = mysql_fetch_array($result);
    
        return $response['introducer_id'];
    }
    
    function GetTotalOfMembersByIntroducerIdAndDesignationId($introducerId, $designation)
    {
        $query = "SELECT count(*) as total from members WHERE introducer_id='$introducerId' AND designation = '$designation'";
        $result = mysql_query($query);
        $response = mysql_fetch_array($result);
    
        return $response['total'];
    }
    
    function UpdateDesignation($designationValue, $introducerId)
    {
        $query = "UPDATE members SET designation='$designationValue' WHERE user_id = '$introducerId'";
        mysql_query($query);
    }
    

    代码不好,第5行sql注入