1

我有一个非常简单的 UPDATE 命令,我正在尝试执行但不断收到 HTTP 500 内部服务器错误。

$test = $mysqli->prepare('UPDATE `tname` SET column = ? WHERE `ID` = ?');
$test->bind_param('ii', $value, $id);
$test->execute();

过去几天我一直在寻找解决方案,但无济于事。

$mysqli 对象已创建,并且在执行上述代码之前不会关闭。事实证明,如果我将准备语句更改为“SELECT”或“UPDATE”以外的任何其他语句,它就会成功运行。

$value并且$id不为空;如果我回显它们,则值是正确的。

奇怪的是,在迁移到 AWS 之前,这在我的本地环境和 Hostmonster 上运行良好。我可能需要更改一些设置吗?我什么也没找到,问题似乎只出在涉及UPDATE.

4

1 回答 1

1

我已经为我自己的问题找到了解决方案,所以如果有人遇到类似的问题,这就是我所做的:

  1. 如果您收到 HTTP 500 内部服务器错误,但您确定服务器配置正确,那么您很可能遇到了 PHP 错误,因此请转到 php.ini 并确保 error_reporting 为 E_ALL 并且 display_errors 已打开。(您需要在生产环境中将其关闭。)

  2. 打开 PHP 错误后,问题的根源应该很明显。对我来说,我的 DB 用户没有 UPDATE 权限(我没有设置 DB,所以我不知道这一点),所以我只需要 GRANT UPDATE 权限。

于 2012-05-29T02:06:52.037 回答