<?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);
?>
我目前正在做移动应用,需要将数据解析到数据库中,这是我的PHP代码。
我目前在我的数据库表中有ad_rating属性,我在这里附加了图片链接。
我的问题是,每当我更新ad_rating的新值时,我应该如何添加前一个?示例ad_rating = 4,因此当我尝试通过发送ad_rating = 3来执行新请求时,我想将其添加到我之前的ad_rating值4,因此ad_rating中的值变为7。
答案 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)
你几乎就在那里,只需要......
$
中删除ad_rating
,使其代表数据库中的当前值,而不是PHP var。?
代表您在2行之后绑定的参数。像这样:
$statement2 = mysqli_prepare($con, "UPDATE post_ads SET ad_rating = ad_rating + ? WHERE ad_id = ?");