【发布时间】: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