gpt4 book ai didi

php - 更新直接在 MYSQL 中工作但不在 PHP 中工作的查询

转载 作者:行者123 更新时间:2023-11-29 02:50:52 27 4
gpt4 key购买 nike

我在 PHP 上使用 mysqli 来运行一个查询,该查询将一个值与现有值相加,如下所示。为了清楚起见,我简化了查询,通常我使用变量来表示不同的值。显然,OpenDBConnection 是我自己编写的一个函数,可以在同一脚本的其他地方完美运行。

$sql="update TBL_Stock set STOCK_Cost = STOCK_Cost + 9 WHERE PO_ID='PO.16.030128'";
$con = OpenDBConnection();
$con->query($sql);

现在,当我直接在 MySQL 中执行查询(使用 MySQL Workbench)时,它运行良好,9 被添加到 STOCK_Cost 的当前值。但是,在 PHP 上没有任何反应,并且 9 没有添加到 STOCK_Cost

奇怪的是下面的 php 位确实有效:

$sql="update TBL_Stock set STOCK_Cost = 9 WHERE PO_ID='PO.16.030128'";
$con = OpenDBConnection();
$con->query($sql);

显然它没有执行我希望代码执行的操作,但在最后一个脚本中,STOCK_Cost 的值设置为 9

因此,只需将最后一位更改为 STOCK_Cost = Stock_Cost + 9 ...,它就会停止工作。知道发生了什么事吗?

最佳答案

我发现了问题...出于安全原因,我已授予用户对表中字段的非常严格的权限...以下是表的授权:

GRANT SELECT (PO_ID, STOCK_ProductID), UPDATE (STOCK_Cost) ON  etc.

要使查询正常工作,当然应该是以下内容。

GRANT SELECT (PO_ID, STOCK_ProductID, STOCK_Cost), UPDATE (STOCK_Cost) ON  etc.

MySQL Workbench 上的用户与我在 PHP 脚本中使用的用户不同,所以这就是它在那里工作的原因。

愚蠢的我......我为此快疯了......感谢所有试图帮助我的人。

关于php - 更新直接在 MYSQL 中工作但不在 PHP 中工作的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36094205/

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