使用Php和Ajax更新Mysql数据库数据

时间:2019-06-06 10:22:12

标签: php jquery html mysql ajax

我正在尝试设置一个按钮,单击该按钮时会将一个固定数字添加到数据库值中。该数据库称为var_stat,由idvalue组成。到目前为止,该表有一行,其中id = varvalue = 35。如果单击,该按钮应将值加5,使其变为40。

我不确定该怎么做,因为我发现的所有答案都使用了完全不同的方法和字符串而不是整数。到目前为止,我已经做到了:

if (isset($_POST['n'])){
$n = $_POST['n'] ;
$stmt = $con->prepare('UPDATE var_stat SET value = value + $n WHERE id = ? ');
$stmt->bind_param('s', $id);
$id = "var";
$stmt->execute();
$stmt->close();
}
<script src="js/jQuery-3.4.1.js"></script>
  <script>
   function add(n){ 
    $.ajax({
        type: "POST",
        url: "update.php",
        data: {
            'n' : n
        },
        cache: false,
        success: function(response)
        {
        alert("Record successfully updated");
        }
    });
 }
  </script>
<form>
<input type="button" value="+5" class="btn btn-circle btn-grey col-sm-10" onclick="add(5);">
</form>

如果我将$n中的update.php更改为integer并单独运行update.php,则可以正常运行,但是我似乎无法通过我的html页面,所以我猜我的JavaScript代码有问题吗?

1 个答案:

答案 0 :(得分:4)

也绑定n,将id移动到绑定语句之前

if (isset($_POST['n'])){
    $n = $_POST['n'] ;
    $id = "var";
    $stmt = $con->prepare('UPDATE var_stat SET value = value + ? WHERE id = ? ');
    $stmt->bind_param('is',$n, $id);
    $stmt->execute();
    $stmt->close();
}