如何继续在PHP中增加价值

时间:2016-01-27 18:02:17

标签: php mysql mysqli

<?php
    $con=mysqli_connect("localhost","xx","xx","xx");

$con2=mysqli_connect("localhost","xx","xx","xx");

    $name = $_POST["name"];
    $state = $_POST["state"];
    $feedback = $_POST["feedback"];
    //$ad_id= $_POST["ad_id"];
    $rate= $_POST["rate"];

    $ad_rating = $_POST["ad_rating"];
    $ad_id= $_POST["ad_id"];

    $statement = mysqli_prepare($con, "INSERT INTO user_feedback(name, state, feedback, ad_id, rate) VALUES (?,?,?,?,?)");

    $statement2 = mysqli_prepare($con, "UPDATE post_ads SET ad_rating= $ad_rating + $ad_rating WHERE ad_id= ?");

        mysqli_stmt_bind_param($statement, "sssss", $name, $state, $feedback, $ad_id, $rate);

    mysqli_stmt_bind_param($statement2, "ss", $ad_rating, $ad_id);

        mysqli_stmt_execute($statement);

        mysqli_stmt_close($statement);

        mysqli_stmt_execute($statement2);

        mysqli_stmt_close($statement2);

        mysqli_close($con);


?>

Database example

我目前正在做移动应用,需要将数据解析到数据库中,这是我的PHP代码。

我目前在我的数据库表中有ad_rating属性,我在这里附加了图片链接。

我的问题是,每当我更新ad_rating的新值时,我应该如何添加前一个?示例ad_rating = 4,因此当我尝试通过发送ad_rating = 3来执行新请求时,我想将其添加到我之前的ad_rating值4,因此ad_rating中的值变为7。

2 个答案:

答案 0 :(得分:0)

您可以使用insert语句:

insert into post_ads
(ad_id, ad_rating)
values (?,?)
on duplicate key update ad_rating=values(ad_rating)+ad_rating;

答案 1 :(得分:0)

你几乎就在那里,只需要......

  1. 从添加的第一个$中删除ad_rating,使其代表数据库中的当前值,而不是PHP var。
  2. 使用?代表您在2行之后绑定的参数。
  3. 像这样:

    $statement2 = mysqli_prepare($con, "UPDATE post_ads SET ad_rating = ad_rating + ? WHERE ad_id = ?");