从 SQL 查询行中的数字中减去“1”


subtract "1" from the number in a row SQL Query

我只想知道如何从$row[posts_remaining]中出现的数字中减去1

换句话说...


<?php
$con = mysql_connect($db_server_name,$db_username,$db_password);
if (!$con) {
    //do something
}
mysql_select_db("" . $db_database_name . "", $con);
$result = mysql_query("SELECT * FROM users
WHERE fb_id='$user_id'");
while($row = mysql_fetch_array($result)) {
    $posts_remaining = $row['posts_remaining']
    // this is where I want to subtract 1 and then update "posts_remaining" with the new number
}
mysql_close($con);
?>

这将给我我的结果,其中第 posts_remaining 行 = {数字}

但是我想通过从中减去一个来更新返回的数字,然后将新数字放在旧数字所在的位置。

我希望我不要让这变得混乱。 很难解释。

此外。。。我是否应该将行"posts_remaining"设置为文本以外的内容才能执行此操作...... 像 Char(50( 之类的东西,或者可以将其保留为 TEXT?

首先,您必须将字段的类型从文本修改为整数比更新记录尝试此查询

update users
set
posts_remaining= posts_remaining - 1
WHERE fb_id='your_user_id'

您可以使用数据库查询本身来执行此操作:

mysql_query("Update users set posts_remaining = posts_remaining -1 where fb_id='$user_id'");

列类型必须是整数,而不是字符串,您必须对其进行编辑。您可以使用

UPDATE users SET posts_remaining = posts_remaining -1 where fb_id = '$user_id'

您也容易受到 SQL 注入攻击,您应该查看预准备语句以减少这些攻击的影响(https://www.w3schools.com/php/php_mysql_prepared_statements.asp(