1

好的..我知道如何从 MySql 表中获取数据记录...我想更改该记录中的数据并更新表。

我的问题是......你真的可以操纵结果行中的数据,然后在更新语句中使用这些数据吗?

例如。

假设表格行有 2 个字段:Name, YearlyEarn.

每月一次,我想将该月的收入添加到每个人的 YearlyEarn 字段中。

假设我们已经为名字在$CurrentName. 然后我们得到他们的记录。

$DataRow = mysql_fetch_array($result):

你能做这个吗:

$DataRow["YearlyEarn"] = $DataRow["YearlyEarn"] + $MonthEarn;

$query = "UPDATE EarnTable SET YearlyEarn = '$DataRow["YearlyEarn"]'    
`WHERE Name = '$CurrentName'" ;

$UpdResult = mysql_query($query) or die(mysql_error());

或者......我应该将数据放入中间字段,对其进行操作......然后在更新语句中使用这些字段吗?

4

3 回答 3

1

是的你可以:

UPDATE EarnTable
SET    YearlyEarn = YearlyEarn + 123
WHERE  Name = 'abc'
于 2013-01-17T01:43:24.673 回答
1

您应该使用准备好的语句,例如PDO。mysql_* 已过时。但如果不这样做,您应该考虑从以下位置更改您的查询:

$query = "UPDATE EarnTable SET YearlyEarn = '$DataRow["YearlyEarn"]'`WHERE Name = '$CurrentName'" ;

至:

$query = "UPDATE EarnTable SET YearlyEarn = `" . $DataRow['YearlyEarn'] . "` WHERE Name = `$CurrentName`" ;
于 2013-01-17T01:26:00.593 回答
0

您可以使用:

$query = "UPDATE EarnTable SET YearlyEarn = '$DataRow[YearlyEarn]' WHERE Name = '$CurrentName'" ;

当您插入数组引用时,会自动引用该键。

或者:

$query = "UPDATE EarnTable SET YearlyEarn = '{$DataRow["YearlyEarn"]}' WHERE Name = '$CurrentName'" ;

在里面{...},你可以放置任何变量表达式,它将被评估和插值。

于 2013-01-17T02:11:11.707 回答