Php 如何在sql行中已有的值中添加新值
我希望代码起作用,以便当用户赚取金额时,应将其添加到Php 如何在sql行中已有的值中添加新值,php,sql,Php,Sql,我希望代码起作用,以便当用户赚取金额时,应将其添加到已付表中,例如,添加后应包含用户金额+已赚取 我的代码当前在每个索赔上都添加了一个新行,但是如果地址已经在表中,我想更新用户的余额 示例:用户余额为15.2,他们的收入为2.3。此余额应更新为17.5 $address = trim($_POST["address"]); $q = $sql->prepare("INSERT INTO ".$dbtable_prefix."Paid SET
已付
表中,例如,添加后应包含用户金额+已赚取
我的代码当前在每个索赔上都添加了一个新行,但是如果地址
已经在表中,我想更新用户的余额
示例:用户余额为15.2,他们的收入为2.3。此余额应更新为17.5
$address = trim($_POST["address"]);
$q = $sql->prepare("INSERT INTO ".$dbtable_prefix."Paid
SET
`address` = ?,
`amount` = ?
;");
$claimlog_reward = $reward;
if ($reward<1) {
$claimlog_reward = number_format($reward, 8, '.', '');
}
$
q->execute(array(trim($_POST['address']), $claimlog_reward));
$address=trim($_POST[“address”]);
$q=$sql->prepare(“插入到“$dbtable_前缀中。”付费
设置
`地址`=?,
`金额`=?
;");
$claimlog\u奖励=$reward;
if($rewardexecute(数组(trim($_POST['address']),$claimlog_悬赏));
我假设MySQL/MariaDB-在重复键上添加一个
更新(假设您的地址是主键)
$address=trim($_POST[“address”]);
$claimlog\u奖励=$reward;
如果($rewardprepare(“插入“$dbtable_前缀”)已支付
设置'address`=:address,'amount`=:amount
重复密钥更新金额=金额+:金额“);
$q->bindValue(':address',trim($_POST['address']);
$q->bindValue(':amount',$claimlog\u reward);
$q->execute();
DoUPDATE
如果INSERT
则改为。不要忘记WHERE
子句,否则所有行都将更新。在这种情况下,如果用户在付费表中没有条目,您将失败您使用的是哪个数据库?它还将作为新行插入。这就是问题所在。您说过您不希望有多行具有相同地址,不是吗欧点?
$address = trim($_POST["address"]);
$claimlog_reward = $reward;
if ($reward<1) {
$claimlog_reward = number_format($reward, 8, '.', '');
}
$q = $sql->prepare("INSERT INTO ".$dbtable_prefix."Paid
SET `address` = :address, `amount` = :amount
ON DUPLICATE KEY UPDATE amount = amount + :amount");
$q->bindValue(':address', trim($_POST['address']));
$q->bindValue(':amount', $claimlog_reward);
$q->execute();