您好我试图实施它们支付后检查他们支付了多少,并使用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)
为什么要担心条件语句,让开关处理它.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)
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |