php - 如何在不修改它们的情况下获取所有 CRUD Mysql 查询的 ID?
问题描述
假设我们有一个大型遗留 PHP 项目,它使用直接 SQL 查询到一个名为 MysqlCls 的类。每个 http 请求都被路由到一个专用控制器。然后,该控制器将要求专用模型类对数据库执行 CRUD 操作。有几百个模型类,其中包含数千个 SQL 语句字符串,因此我无法更改实际的 SQL。MysqlCls 类扩展了 Mysqli 并具有接收 SQL 字符串并以数组或 Mysqli 形式返回结果的方法。每个数据库表都有一个名为“id”的主键列(自动递增)。
我的问题是:是否可以获得所有 SQL 查询的所有受影响(选定)行 ID。我知道当我们进行插入时 - 有一个“最后插入 id”,因此可以回答“CRUD”的“C”问题。路德呢?
我正在尝试构建的是一个可以位于 MysqlCls 类之上的解析器(作为它的代理)。当请求进入并生成整个网站时 - 我希望该解析器保存一个静态数组属性,其中包含 PHP/Mysql 用于回答该 http 请求的所有查询中的所有表 ID。
因此,如果 index.php 有 10 个 SELECT SQL 查询——我想要一个包含 10 个根键的多维数组。每个根键名称都是表的名称。它的值将是一个数组,其中包含用于回答该请求的该表的所有 ID。
我已经弄清楚了 INSERT 部分以及如何获取表名。如何在不修改任何查询的情况下完成剩下的工作?
请注意:我可以添加或附加到 SQL 字符串,但我无法更改其中的内容。
非常感谢
解决方案
推荐阅读
- string - 以更简单的方式重写 for 循环函数?
- vue.js - vue @click 不改变类
- javascript - ApolloGraphQL - 不能同时在 MockedProvider 中使用模拟、客户端、缓存、解析器
- python - 如何计算由 django 中的选择字段过滤的数据库中的对象?
- neo4j - NEO4J:存储返回路径和附加信息(例如地铁网络中运行的混凝土列车)的好做法是什么?
- javascript - 什么我写得不正确,我无法在警报/控制台中显示消息?
- sql - 使用当前身份种子值生成脚本
- powerbi - Power BI 网关管理员
- javascript - 函数作为 React 子级无效。- React 中的功能组件
- flutter - 你能告诉我更多关于全局配置的信息吗