gpt4 book ai didi

php - 如何将 TOTAL 的结果存储在 MySQL 中,以便可以立即将其插回到表中

转载 作者:行者123 更新时间:2023-11-29 18:22:56 25 4
gpt4 key购买 nike

我想将数据输入到表格中。使用刚刚输入的数据,我想将 3 列的值相加,然后将该数字插入表中的第四列。

我的初始代码:

<?php

$post = file_get_contents('php://input');

$updatedJSONdata = json_decode($post, true);

$numOfStarsLevelOne = $updatedJSONdata["numOfStarsLevelOne"];
$numOfStarsLevelTwo = $updatedJSONdata["numOfStarsLevelTwo"];
$numOfStarsLevelThree = $updatedJSONdata["numOfStarsLevelThree"];


$db = new PDO('mysql:host=localhost;dbname=gametable', 'root', '');
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

$sql = "INSERT INTO gameData(
numOfStarsLevelOne,
numOfStarsLevelTwo,
numOfStarsLevelThree)
VALUES (
'$numOfStarsLevelOne',
'$numOfStarsLevelTwo',
'$numOfStarsLevelThree')";

$testInsert = $db->prepare($sql);
$testInsert->execute();

我的猜测是我需要进行第二个查询,例如

$sqlTwo = "SELECT (numOfStarsLevelOne
+ numOfStarsLevelTwo
+ numOfStarsLevelThree) as total from gameData";

$secondInsert = $db->prepare($sqlTwo);
$secondInsert->execute();

但我不确定如何存储第二个查询的结果,以便将其插入到 gameData 中。

我希望最终能够进行另一个查询,例如

$sqlThree = "INSERT into gamedata(totalNumOfStars) values("result of second query stored as a variable")";

最佳答案

你考虑过这个吗?

INSERT INTO gameData(numOfStarsLevelOne, numOfStarsLevelTwo,  numOfStarsLevelThree) 
VALUES ($numOfStarsLevelOne, $numOfStarsLevelTwo, $numOfStarsLevelThree,
$numOfStarsLevelOne + $numOfStarsLevelTwo + $numOfStarsLevelThree
);

注意:我删除了单引号,因为这些可能是数字。但是,您应该使用参数,而不是修改查询字符串。

如果您希望该值始终是最新的,请使用触发器。或者,创建一个 View :

create view v_gamedata as
select gd.*,
(numOfStarsLevelOne + $numOfStarsLevelTwo + $numOfStarsLevelThree) as total
from gamedata;

或者,在最新版本的 MySQL 中,您可以创建计算列。

关于php - 如何将 TOTAL 的结果存储在 MySQL 中,以便可以立即将其插回到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46424274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com