用PHP用户记录MySQL查询

时间:2018-06-29 09:57:00

标签: php mysql logging triggers

我们需要记录用户在PHP项目中执行的SQL查询-查询和php用户ID。我们关心INSERT,UPDATE和DELETE。

  1. 我了解MySQL常规日志,但是由于性能低下,系统管理员不建议这样做。

  2. 第二个选项是在PHP级别记录日志,但是当有人使用相同的mysql登录名访问另一个项目的访问数据库时,就会出现问题。或从PhpMyAdmin。因此,这些更改将无法跟踪。

  3. 第三个选项(可能是最好的)是MySQL触发器。但是有问题-我不知道如何传递PHP用户ID来触发登录。

我尝试通过以下方式设置触发器:

  1. 记录完整查询:根据get-full-mysql-query-string-on-insert-or-update,我能够从INFORMATION_SCHEMA执行完整查询。

  2. 登录用户ID:我尝试使用MySQL变量传递用户ID。就像我必须在执行每个查询之前调用SET @phpUserId = 123;。然后触发器成功获取变量@phpUserId。但是我对pass-php-variable-to-mysql-trigger-nette中描述的MySQL变量有疑问。

TL; DR: 有没有办法使用php中的用户ID有效和性能友好地执行日志查询。

0 个答案:

没有答案