我有这个PHP脚本:
$q = $dbc -> prepare("
UPDATE accounts
SET motivation = motivation-10
WHERE id = ?
");
$q -> execute(array($user['id']));
但它减去了20而不是10。当我在mysql中运行查询时,它只减去十。为什么呢?
答案 0 :(得分:0)
你的$ q - > execute方法正在做些傻事!检查或
可能是循环或
您有多个请求!
答案 1 :(得分:0)
你准备好的陈述看起来很好。它应该从动力栏中的当前值中扣除10。
如果扣除20,你最有可能两次打电话。
确保您只拨打execute()
一次,如果您是从网页上调用此邮件,请确保您没有再次点击它。
答案 2 :(得分:0)
当您在同一页面中编写PHP代码和html代码时出现问题。如果您是第一次单击提交按钮插入,那么页面将再次刷新..是吗?然后再次执行代码..修复是你想在执行语句之前检查条件,表单给我们提供数据。
if($_POST['txtlocation']!='')
{
$sql = "INSERT INTO location(description) VALUES (:location)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':location', $_POST['txtlocation'], PDO::PARAM_STR);
$stmt->execute();
}