PHP其他如果方法不起作用?

Gha*_*our 0 php if-statement

您好我试图实施它们支付后检查他们支付了多少,并使用if方法在sql数据库中输入不同的变量.

问题: 问题是所有if方法都返回到第一个选项(插入paid = 1和30days)不确定问题是什么,我的if方法是否被破坏了?有什么问题请解释一下!谢谢!

if(number_format($amount, 2) == 8.00) 
{
    $mysqli = new mysqli(******);
    $stmt = $mysqli->prepare("UPDATE `as_users` SET paid='1', reg_date=CURRENT_TIMESTAMP, end_date=DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) WHERE username = ?");
    $stmt->bind_param('s', $username);
    $stmt->execute();
} elseif (number_format($amount, 2) == 10.00) 
{
    $mysqli = new mysqli(******);
    $stmt = $mysqli->prepare("UPDATE `as_users` SET paid='2', reg_date=CURRENT_TIMESTAMP, end_date=DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) WHERE username = ?");
    $stmt->bind_param('s', $username);
    $stmt->execute();
} elseif (number_format($amount, 2) == 100.00) 
{
    $mysqli = new mysqli(******);
    $stmt = $mysqli->prepare("UPDATE `as_users` SET paid='2', reg_date=CURRENT_TIMESTAMP, end_date=DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL 365 DAY) WHERE username = ?");
    $stmt->bind_param('s', $username);
    $stmt->execute();
}
Run Code Online (Sandbox Code Playgroud)

编辑:我试过$amount并尝试使用我从下拉菜单中的数组名称

array("Basic Package-Monthly", "8.00", "Month", "1", "0", "0"),
array("Premium Package-Monthly", "10.00", "Month", "1", "0", "0"),
array("Premium Package-Annually", "100.00", "Year", "1", "0", "0"),
Run Code Online (Sandbox Code Playgroud)

Ohg*_*why 6

为什么要担心条件语句,让开关处理它.prepared充分利用您的陈述.

$mysqli = new mysqli('******');
$paid = false;
$recurring = false;

switch(number_format($amount, 2)):
    case '8.00':
        $paid = 1;
        $recurring = 30;
        break;
    case '10.00':
        $paid = 2;
        $recurring = 30;
        break;
    case '100.00':
        $paid = 2;
        $recurring  = 365;
        break;
endswitch;

$stmt = $mysqli->prepare("UPDATE `as_users` SET paid=?, reg_date=CURRENT_TIMESTAMP, end_date=DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL ? DAY) WHERE username = ?");
$stmt->bind_param('dis', $paid, $recurring, $username);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)