Re-formating LIMIT destroys DELETE and UPDATE queries
还没有人认领这个 Issue。
评估
调研方向
首先使用报告中所示的 Parser 构造函数和 statement->build() 示例重现该问题,然后跟踪 DELETE 和 UPDATE 语句中 LIMIT 的构建方式。Issue 未指定文件或测试;完成标准是重建后的 DELETE 和 UPDATE 查询保留有效的 LIMIT 语法,同时 SELECT 的行为保持正确。
由索引模型根据 Issue 内容生成。
描述
When building queries, the LIMIT is re-formatted. For example SELECT * FROM tbl LIMIT 1 is changed to SELECT * FROM tbl LIMIT 0, 1. This works just fine for SELECT queries, but not for DELETE or UPDATE queries.
Example:
$query1 = "DELETE FROM a LIMIT 1";
$parser = new PhpMyAdmin\SqlParser\Parser($query1);
$statement = $parser->statements[0];
$table2 = new \PhpMyAdmin\SqlParser\Components\Expression("", "b", "", "");
$statement->from[0] = $table2;
echo $statement->build();
results in
DELETE FROM `b` LIMIT 0, 1
The changed query fails, while the original query is perfect SQL.
- 主要语言
- PHP
- 星标
- 485
- 派生
- 119
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
phpmyadmin/sql-parser 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
phpmyadmin/sql-parser#655 · 1 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 55/100
phpmyadmin/sql-parser#666 ·
-
难度 3/5 1-2 天 新手友好度 65/100
phpmyadmin/sql-parser#662 · 2 个 reaction ·
-
kind/support
难度 3/5 1-2 天 新手友好度 45/100
phpmyadmin/sql-parser#653 · 1 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 70/100
phpmyadmin/sql-parser#649 ·
查看 phpmyadmin/sql-parser 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 85/100
-
a11y admissions.uiowa.edu needs grooming SiteImprove best practice
难度 2/5 1-3 小时 新手友好度 70/100
-
Save States Menu 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 2/5 1-3 小时 新手友好度 84/100
pluginsGLPI/datainjection#673 ·