【问题标题】:PDO: How to add a value to an existing value for multiple columns using UPDATEPDO:如何使用 UPDATE 将值添加到多个列的现有值
【发布时间】:2019-12-16 04:54:04
【问题描述】:

我有一个表“api_keys”,我在其中存储了一些 API 密钥。

api_keys 表有 5 列:user、key、api1_limit、api2_limit、api3_limit。

我将使用最后 3 列来存储每个 API 请求的总和。我想这样做是因为有 API 限制,所以我想确保不超过限制。

所以我的想法是在每次使用 API 时向“api 限制”列添加值。

顺便说一句,我正在使用 PDO。

我尝试使用默认的 UPDATE 语法将值添加到现有值中。

问题在于“api1_limit”是唯一被更新的列。

$sql_query = "UPDATE api_keys 
            SET api1_limit = api1_limit + :api1_limit_counter,  api2_limit =  api2_limit + :api2_limit_Counter, api3_limit =  api3_limit + :api3_limit_Counter WHERE key = :thekey";


$statement = $connection->prepare($sql_query);
$result = $statement->execute(
    array(
        ':api1_limit_counter'      =>  $api1_limit_counter,
        ':api2_limit_Counter'       =>   $api2_limit_Counter,
        ':api3_limit_Counter'       =>   $api3_limit_Counter,
        ':thekey'                  => $thekey

         )
);

我想使用 1 次调用更新所有 3 列中的值。

【问题讨论】:

  • 你不能说api1_limit = api1_limit + 1等吗?
  • @delboy1978uk 不幸的是,我不能因为 api1_limit_counter 变量包含我使用 api 的总次数。 (我正在使用 foreach 多次调用 api)。
  • 你确定其他两个变量有大写 C 吗?
  • 感谢您关注@Dharman,这不是问题
  • 我刚刚发现了问题所在,“api 限制”列设置为 NULL。如果初始值为 NULL,则无法添加该值,因此我开始将值设置为 0,现在一切正常。谢谢大家!

标签: php sql pdo sql-update


【解决方案1】:

我发现了问题所在,“api 限制”列设置为 NULL。如果初始值为 NULL,则无法添加该值,因此当我将凭据添加到 api_keys 表时,我开始将值设置为 0,现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2014-02-24
    • 1970-01-01
    相关资源
    最近更新 更多