在SQL中添加PHP变量,其中
在我的第一个UPDATE语句中,我试图让我的WHERE值包含变量$couponCode,但它现在不起作用。这样,正确的行将根据输入内容进行更新。任何帮助都将不胜感激在SQL中添加PHP变量,其中,php,sql,Php,Sql,在我的第一个UPDATE语句中,我试图让我的WHERE值包含变量$couponCode,但它现在不起作用。这样,正确的行将根据输入内容进行更新。任何帮助都将不胜感激 if ($couponCode == $coupons_db3['coupon_code']){ echo $couponCode; $stmt = $db->prepare('UPDATE promocode_3 SET used = 1 WHERE coupon_code ='.$couponCode);
if ($couponCode == $coupons_db3['coupon_code']){
echo $couponCode;
$stmt = $db->prepare('UPDATE promocode_3 SET used = 1 WHERE coupon_code ='.$couponCode);
$stmt = $db->prepare('UPDATE usr_customer_profile SET packageid = 3 WHERE usrcustomerid = :usrcustomerid');
$stmt->bindValue(':usrcustomerid', $_SESSION['usrcustomerid'], PDO::PARAM_INT);
$stmt->execute();
break;
}
编辑
请忽略@比拉的回答更准确
试试这个:
$stmt = $db->prepare("UPDATE promocode_3 SET used = 1 WHERE coupon_code ='".$couponCode."'");
您错过了优惠券代码值中的报价。
另外,我不知道你在用哪个数据库。请下次再提
这应该是可行的,但对于准备好的语句来说,这不是一个理想的情况,因为对于准备好的语句,您应该只在执行时给出参数
“prepare”应该只编译sql语句,稍后应该传递参数。您还需要绑定
couponCode
if ($couponCode == $coupons_db3['coupon_code']){
echo $couponCode;
$stmt = $db->prepare('UPDATE promocode_3 SET used = 1 WHERE coupon_code =:couponCode');
$stmt->bindValue(':couponCode', $couponCode, PDO::PARAM_STR);
$stmt->execute();
$stmt = $db->prepare('UPDATE usr_customer_profile SET packageid = 3 WHERE usrcustomerid = :usrcustomerid');
$stmt->bindValue(':usrcustomerid', $_SESSION['usrcustomerid'], PDO::PARAM_INT);
$stmt->execute();
break;
}
准备、绑定(即
WHERE优惠券代码=:couponCode
)并以与第二个查询相同的方式执行第一个查询。我想看一个这样的例子,我已经将行变成:“$stmt=$db->Prepare('updatepromocode\u 3 SET used=1 WHERE优惠券代码=:couponCode);”那么您是否正在绑定$couponCode
?执行准备好的语句怎么样?我不会假设$couponCode
是一个整数。我是说,可能是,但OP还没有确认,所以我只使用nowLet的默认绑定类型让他设置:)我们只是帮助他解决编码问题,因为单引号在更新中没有关闭,或者是其他原因?抱歉,忘了提到它是字符串varchari,我必须确保参数和两者都需要它们的单独执行()。谢谢,这就成功了。