0

我有一个 mysql 表,其中有一个名为 points 的字段,该值为 19。当我使用以下方法更改值时:

<?php
$con=mysqli_connect("blah", 'blah', 'blah', "blah");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO Social_points (`points`)
VALUES
('$_POST[Jpoints]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added";

mysqli_close($con);
?>

从前一页读取表单数据它工作正常,但是它只是将值添加到原始值的末尾,例如,如果我有 19 作为原始值,然后在表单中输入 5,它将变为 195。任何想法

4

5 回答 5

1

如果您必须将值添加为新记录,则使用 INSERT 查询,否则使用 UPDATE 查询。

于 2013-07-30T10:58:19.513 回答
1

使用 UPDATE 语法而不是插入..

$sql="UPDATE Social_points set (`points`)
VALUES
('$_POST[Jpoints]')";
于 2013-07-30T10:58:31.907 回答
1

这只是黑暗中的一次野刺:

您正在使用 POST 方法,所以我猜您是通过 AJAX 调用该脚本。我的下一个猜测是,您可能会在发送表单之前使用 Javascript 添加原始值和新值。

因此,在 Javascript 中可能发生的情况是:不是将两个值相加,而是将它们连接起来,然后发送到数据库,被视为字符串 (JPoints)。

如果我是对的,您需要在 Javascript 中将这两个值都转换为 int 。

于 2013-07-30T11:02:00.113 回答
1

试试这个伙伴

更新 social_points 设置点 = convert(varchar(5),points)+'5'

于 2013-07-30T11:00:33.707 回答
0

从数据库中读取数据。

例如,您添加一个项目

获取最后添加的项目的 ID 并更新它。

<?php
    // before this you have a query for last added item.
    $data['itemid'];
    $_POST['newvalue'];
    $data['value'];

    //if the value 19 and the new value 5 this will become 195
    $newvalue = trim($data['value'] . $_POST['newvalue']);

    $sql->query("UPDATE tablename SET value = '.$newvalue.' WHERE itemid = '.$data['itemid'].'");
?>
于 2013-07-30T11:04:12.350 回答