Php 向所有用户帐户添加资金

Php 向所有用户帐户添加资金,php,mysql,database,Php,Mysql,Database,我们有一个由多种用户类型组成的社交网络,我们希望在所有客户帐户中增加7.04美元,以庆祝7月4日的美国假日 我使用了以下SQL命令: UPDATE `database`.`databasename` SET fCreditAmount = fCreditAmount + 7.04 WHERE eUserType = 'C' 然而,当我这样做时,它似乎被多次信任。因此,与其只给每个客户7.04美元,还不如给一些客户1000美元 有人知道为什么会这样吗 我们的“余额”表结构是: iBala

我们有一个由多种用户类型组成的社交网络,我们希望在所有客户帐户中增加7.04美元,以庆祝7月4日的美国假日

我使用了以下SQL命令:

    UPDATE `database`.`databasename` SET fCreditAmount = fCreditAmount + 7.04 WHERE eUserType = 'C'
然而,当我这样做时,它似乎被多次信任。因此,与其只给每个客户7.04美元,还不如给一些客户1000美元

有人知道为什么会这样吗

我们的“余额”表结构是:

iBalanceId (autoincrement)
iUserId
eUserType
eBalType
fCreditAmount
fDebitAmount
dEntryDate
dValueDate
vDescritption
vBalTypeCode
iRefId
vRefTypeCode
iAddedUserId
eAddedUserType
vProcessDescription 
eBalanceStatus

如果没有更多的信息很难判断,但看起来你在用户历史记录中的每笔交易中都增加了7.04美元。因此,每个用户都可以获得7.04*笔信用交易

您应该添加一笔新交易,插入所需金额。这样,每个帐户将获得一次准确的信用


我当然希望您没有在生产数据库上这样做

乍一看,我90%相信这个问题来自于你在数据中没有预料到的东西。请在从数据库中选择iUserId、fCreditAmount前后向我们展示一下。数据库名称,其中eUserType='C';?是的,这正是正在发生的事情。该命令将向用户历史记录中的每个事务添加$7.04。正确的SQL命令是:INSERT database.databasename SET fCreditAmount=fCreditAmount+7.04,其中eUserType='C'@SINCAT您需要INSERT INTO,而不仅仅是INSERT,INSERT语句中没有WHERE子句。您的查询类似于INSERT INTO databaseName.tableName SET fCreditAmount=7.04,eUserType='C',someOtherColumn=。。。。您可能希望根据需要初始化其他列名,但基于此处非常有限的信息,我们无法为您提供帮助。你可能想温习一下。@SinCats无论如何,如果这有帮助,请记住接受答案。如果需要进一步帮助,您可以随时询问其他问题,如果有助于提供上下文,则可以链接到此问题。INSERT INTO DATABASE.table SET fCreditAmount=7.04,eUserType='C'